TPTP Problem File: DAT225^1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : DAT225^1 : TPTP v8.2.0. Released v7.0.0.
% Domain   : Data Structures
% Problem  : Tllist 693
% Version  : [Bla16] axioms : Especial.
% English  :

% Refs     : [Loc10] Lochbihler (2010), Coinductive
%          : [RB15]  Reynolds & Blanchette (2015), A Decision Procedure for
%          : [Bla16] Blanchette (2016), Email to Geoff Sutcliffe
% Source   : [Bla16]
% Names    : tllist__693.p [Bla16]

% Status   : Theorem
% Rating   : 0.67 v8.1.0, 1.00 v7.1.0
% Syntax   : Number of formulae    :  308 ( 152 unt;  49 typ;   0 def)
%            Number of atoms       :  596 ( 292 equ;   0 cnn)
%            Maximal formula atoms :   11 (   2 avg)
%            Number of connectives : 4175 (  92   ~;  14   |;  64   &;3764   @)
%                                         (   0 <=>; 241  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   28 (   8 avg)
%            Number of types       :    7 (   6 usr)
%            Number of type conns  :  317 ( 317   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   46 (  43 usr;   4 con; 0-7 aty)
%            Number of variables   : 1329 ( 124   ^;1118   !;  39   ?;1329   :)
%                                         (  48  !>;   0  ?*;   0  @-;   0  @+)
% SPC      : TH1_THM_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2016-07-13 14:53:24.453
%------------------------------------------------------------------------------
%----Could-be-implicit typings (11)
thf(ty_t_TLList__Mirabelle__qhjoikztpd_Otllist,type,
    tLList446370796tllist: $tType > $tType > $tType ).

thf(ty_t_Coinductive__List_Ollist,type,
    coinductive_llist: $tType > $tType ).

thf(ty_t_Product__Type_Oprod,type,
    product_prod: $tType > $tType > $tType ).

thf(ty_t_Set_Oset,type,
    set: $tType > $tType ).

thf(ty_t_itself,type,
    itself: $tType > $tType ).

thf(ty_tf_f,type,
    f: $tType ).

thf(ty_tf_e,type,
    e: $tType ).

thf(ty_tf_d,type,
    d: $tType ).

thf(ty_tf_c,type,
    c: $tType ).

thf(ty_tf_b,type,
    b: $tType ).

thf(ty_tf_a,type,
    a: $tType ).

%----Explicit typings (38)
thf(sy_c_Coinductive__List_Ofinite__lprefix,type,
    coindu328551480prefix: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) > $o ) ).

thf(sy_c_Coinductive__List_Olappend,type,
    coinductive_lappend: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) ).

thf(sy_c_Coinductive__List_Olfilter,type,
    coinductive_lfilter: 
      !>[A: $tType] : ( ( A > $o ) > ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) ).

thf(sy_c_Coinductive__List_Olfinite,type,
    coinductive_lfinite: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > $o ) ).

thf(sy_c_Coinductive__List_Ollast,type,
    coinductive_llast: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > A ) ).

thf(sy_c_Coinductive__List_Ollist_OLCons,type,
    coinductive_LCons: 
      !>[A: $tType] : ( A > ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) ).

thf(sy_c_Coinductive__List_Ollist_OLNil,type,
    coinductive_LNil: 
      !>[A: $tType] : ( coinductive_llist @ A ) ).

thf(sy_c_Coinductive__List_Ollist_Ollist__all2,type,
    coindu1486289336t_all2: 
      !>[A: $tType,B: $tType] : ( ( A > B > $o ) > ( coinductive_llist @ A ) > ( coinductive_llist @ B ) > $o ) ).

thf(sy_c_Coinductive__List_Ollist_Olnull,type,
    coinductive_lnull: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > $o ) ).

thf(sy_c_Coinductive__List_Ollist_Olset,type,
    coinductive_lset: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > ( set @ A ) ) ).

thf(sy_c_Coinductive__List_Olprefix,type,
    coinductive_lprefix: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) > $o ) ).

thf(sy_c_Coinductive__List_Olstrict__prefix,type,
    coindu1478340336prefix: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) > $o ) ).

thf(sy_c_HOL_OThe,type,
    the: 
      !>[A: $tType] : ( ( A > $o ) > A ) ).

thf(sy_c_HOL_Oundefined,type,
    undefined: 
      !>[A: $tType] : A ).

thf(sy_c_If,type,
    if: 
      !>[A: $tType] : ( $o > A > A > A ) ).

thf(sy_c_Lattices_Osup__class_Osup,type,
    sup_sup: 
      !>[A: $tType] : ( A > A > A ) ).

thf(sy_c_Product__Type_OPair,type,
    product_Pair: 
      !>[A: $tType,B: $tType] : ( A > B > ( product_prod @ A @ B ) ) ).

thf(sy_c_Product__Type_Oapfst,type,
    product_apfst: 
      !>[A: $tType,C: $tType,B: $tType] : ( ( A > C ) > ( product_prod @ A @ B ) > ( product_prod @ C @ B ) ) ).

thf(sy_c_Product__Type_Ointernal__case__prod,type,
    produc2004651681e_prod: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( A > B > C ) > ( product_prod @ A @ B ) > C ) ).

thf(sy_c_Product__Type_Oprod_Ocase__prod,type,
    product_case_prod: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( A > B > C ) > ( product_prod @ A @ B ) > C ) ).

thf(sy_c_Product__Type_Oprod_Ofst,type,
    product_fst: 
      !>[A: $tType,B: $tType] : ( ( product_prod @ A @ B ) > A ) ).

thf(sy_c_Product__Type_Oprod_Osnd,type,
    product_snd: 
      !>[A: $tType,B: $tType] : ( ( product_prod @ A @ B ) > B ) ).

thf(sy_c_Product__Type_Oprod_Oswap,type,
    product_swap: 
      !>[A: $tType,B: $tType] : ( ( product_prod @ A @ B ) > ( product_prod @ B @ A ) ) ).

thf(sy_c_Product__Type_Oscomp,type,
    product_scomp: 
      !>[A: $tType,B: $tType,C: $tType,D: $tType] : ( ( A > ( product_prod @ B @ C ) ) > ( B > C > D ) > A > D ) ).

thf(sy_c_Pure_Otype,type,
    type: 
      !>[A: $tType] : ( itself @ A ) ).

thf(sy_c_Relation_Oreflp,type,
    reflp: 
      !>[A: $tType] : ( ( A > A > $o ) > $o ) ).

thf(sy_c_Set_OCollect,type,
    collect: 
      !>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Ocr__tllist,type,
    tLList47617868tllist: 
      !>[A: $tType,B: $tType] : ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( tLList446370796tllist @ A @ B ) > $o ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Olappendt,type,
    tLList98099029ppendt: 
      !>[A: $tType,B: $tType] : ( ( coinductive_llist @ A ) > ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ B ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist__of__llist,type,
    tLList1672613558_llist: 
      !>[B: $tType,A: $tType] : ( B > ( coinductive_llist @ A ) > ( tLList446370796tllist @ A @ B ) ) ).

thf(sy_c_member,type,
    member: 
      !>[A: $tType] : ( A > ( set @ A ) > $o ) ).

thf(sy_v_Pa,type,
    pa: a > b > $o ).

thf(sy_v_Qa,type,
    qa: c > d > $o ).

thf(sy_v_Ra,type,
    ra: e > f > $o ).

thf(sy_v_xs_Ha,type,
    xs_a: c > ( product_prod @ ( coinductive_llist @ a ) @ e ) ).

thf(sy_v_xsa,type,
    xsa: product_prod @ ( coinductive_llist @ a ) @ c ).

thf(sy_v_ys_Ha,type,
    ys_a: d > ( product_prod @ ( coinductive_llist @ b ) @ f ) ).

thf(sy_v_ysa,type,
    ysa: product_prod @ ( coinductive_llist @ b ) @ d ).

%----Relevant facts (253)
thf(fact_0_fst__apfst,axiom,
    ! [A: $tType,B: $tType,C: $tType,F: C > A,X: product_prod @ C @ B] :
      ( ( product_fst @ A @ B @ ( product_apfst @ C @ A @ B @ F @ X ) )
      = ( F @ ( product_fst @ C @ B @ X ) ) ) ).

% fst_apfst
thf(fact_1_apfst__eq__conv,axiom,
    ! [A: $tType,B: $tType,C: $tType,F: C > A,X: product_prod @ C @ B,G: C > A] :
      ( ( ( product_apfst @ C @ A @ B @ F @ X )
        = ( product_apfst @ C @ A @ B @ G @ X ) )
      = ( ( F @ ( product_fst @ C @ B @ X ) )
        = ( G @ ( product_fst @ C @ B @ X ) ) ) ) ).

% apfst_eq_conv
thf(fact_2_lfinite__lappend,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( coinductive_lfinite @ A @ ( coinductive_lappend @ A @ Xs @ Ys ) )
      = ( ( coinductive_lfinite @ A @ Xs )
        & ( coinductive_lfinite @ A @ Ys ) ) ) ).

% lfinite_lappend
thf(fact_3_split__part,axiom,
    ! [B: $tType,A: $tType,P: $o,Q: A > B > $o] :
      ( ( product_case_prod @ A @ B @ $o
        @ ^ [A2: A,B2: B] :
            ( P
            & ( Q @ A2 @ B2 ) ) )
      = ( ^ [Ab: product_prod @ A @ B] :
            ( P
            & ( product_case_prod @ A @ B @ $o @ Q @ Ab ) ) ) ) ).

% split_part
thf(fact_4_llist__all2__lappendI,axiom,
    ! [A: $tType,B: $tType,P: A > B > $o,Xs: coinductive_llist @ A,Ys: coinductive_llist @ B,Xs2: coinductive_llist @ A,Ys2: coinductive_llist @ B] :
      ( ( coindu1486289336t_all2 @ A @ B @ P @ Xs @ Ys )
     => ( ( ( coinductive_lfinite @ A @ Xs )
         => ( ( coinductive_lfinite @ B @ Ys )
           => ( coindu1486289336t_all2 @ A @ B @ P @ Xs2 @ Ys2 ) ) )
       => ( coindu1486289336t_all2 @ A @ B @ P @ ( coinductive_lappend @ A @ Xs @ Xs2 ) @ ( coinductive_lappend @ B @ Ys @ Ys2 ) ) ) ) ).

% llist_all2_lappendI
thf(fact_5_fst__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( product_fst @ A @ B )
      = ( product_case_prod @ A @ B @ A
        @ ^ [X1: A,X2: B] : X1 ) ) ).

% fst_def
thf(fact_6_case__prod__app,axiom,
    ! [A: $tType,D: $tType,C: $tType,B: $tType] :
      ( ( product_case_prod @ B @ C @ ( D > A ) )
      = ( ^ [F2: B > C > D > A,X3: product_prod @ B @ C,Y: D] :
            ( product_case_prod @ B @ C @ A
            @ ^ [L: B,R: C] : ( F2 @ L @ R @ Y )
            @ X3 ) ) ) ).

% case_prod_app
thf(fact_7_lappend__inf,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ~ ( coinductive_lfinite @ A @ Xs )
     => ( ( coinductive_lappend @ A @ Xs @ Ys )
        = Xs ) ) ).

% lappend_inf
thf(fact_8_llist__all2__lfiniteD,axiom,
    ! [A: $tType,B: $tType,P: A > B > $o,Xs: coinductive_llist @ A,Ys: coinductive_llist @ B] :
      ( ( coindu1486289336t_all2 @ A @ B @ P @ Xs @ Ys )
     => ( ( coinductive_lfinite @ A @ Xs )
        = ( coinductive_lfinite @ B @ Ys ) ) ) ).

% llist_all2_lfiniteD
thf(fact_9_llist__all2__conj,axiom,
    ! [A: $tType,B: $tType,P: A > B > $o,Q: A > B > $o,Xs: coinductive_llist @ A,Ys: coinductive_llist @ B] :
      ( ( coindu1486289336t_all2 @ A @ B
        @ ^ [X3: A,Y: B] :
            ( ( P @ X3 @ Y )
            & ( Q @ X3 @ Y ) )
        @ Xs
        @ Ys )
      = ( ( coindu1486289336t_all2 @ A @ B @ P @ Xs @ Ys )
        & ( coindu1486289336t_all2 @ A @ B @ Q @ Xs @ Ys ) ) ) ).

% llist_all2_conj
thf(fact_10_prod_Odisc__eq__case,axiom,
    ! [B: $tType,A: $tType,Prod: product_prod @ A @ B] :
      ( product_case_prod @ A @ B @ $o
      @ ^ [Uu: A,Uv: B] : $true
      @ Prod ) ).

% prod.disc_eq_case
thf(fact_11_prod_Ocase__distrib,axiom,
    ! [C: $tType,D: $tType,B: $tType,A: $tType,H: C > D,F: A > B > C,Prod: product_prod @ A @ B] :
      ( ( H @ ( product_case_prod @ A @ B @ C @ F @ Prod ) )
      = ( product_case_prod @ A @ B @ D
        @ ^ [X1: A,X2: B] : ( H @ ( F @ X1 @ X2 ) )
        @ Prod ) ) ).

% prod.case_distrib
thf(fact_12_llist_Orel__refl,axiom,
    ! [B: $tType,Ra: B > B > $o,X: coinductive_llist @ B] :
      ( ! [X4: B] : ( Ra @ X4 @ X4 )
     => ( coindu1486289336t_all2 @ B @ B @ Ra @ X @ X ) ) ).

% llist.rel_refl
thf(fact_13_llist_Orel__eq,axiom,
    ! [A: $tType] :
      ( ( coindu1486289336t_all2 @ A @ A
        @ ^ [Y2: A,Z: A] : Y2 = Z )
      = ( ^ [Y2: coinductive_llist @ A,Z: coinductive_llist @ A] : Y2 = Z ) ) ).

% llist.rel_eq
thf(fact_14_llist__all2__mono,axiom,
    ! [A: $tType,B: $tType,P: A > B > $o,Xs: coinductive_llist @ A,Ys: coinductive_llist @ B,P2: A > B > $o] :
      ( ( coindu1486289336t_all2 @ A @ B @ P @ Xs @ Ys )
     => ( ! [X4: A,Y3: B] :
            ( ( P @ X4 @ Y3 )
           => ( P2 @ X4 @ Y3 ) )
       => ( coindu1486289336t_all2 @ A @ B @ P2 @ Xs @ Ys ) ) ) ).

% llist_all2_mono
thf(fact_15_llist__all2__rsp,axiom,
    ! [A: $tType,B: $tType,R2: A > B > $o,S: A > A > $o,T: B > B > $o,X: coinductive_llist @ A,Y4: coinductive_llist @ B,A3: coinductive_llist @ A,B3: coinductive_llist @ B] :
      ( ! [X4: A,Y3: B] :
          ( ( R2 @ X4 @ Y3 )
         => ! [A4: A,B4: B] :
              ( ( R2 @ A4 @ B4 )
             => ( ( S @ X4 @ A4 )
                = ( T @ Y3 @ B4 ) ) ) )
     => ( ( coindu1486289336t_all2 @ A @ B @ R2 @ X @ Y4 )
       => ( ( coindu1486289336t_all2 @ A @ B @ R2 @ A3 @ B3 )
         => ( ( coindu1486289336t_all2 @ A @ A @ S @ X @ A3 )
            = ( coindu1486289336t_all2 @ B @ B @ T @ Y4 @ B3 ) ) ) ) ) ).

% llist_all2_rsp
thf(fact_16_lappend__assoc,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,Zs: coinductive_llist @ A] :
      ( ( coinductive_lappend @ A @ ( coinductive_lappend @ A @ Xs @ Ys ) @ Zs )
      = ( coinductive_lappend @ A @ Xs @ ( coinductive_lappend @ A @ Ys @ Zs ) ) ) ).

% lappend_assoc
thf(fact_17_internal__case__prod__def,axiom,
    ! [C: $tType,B: $tType,A: $tType] :
      ( ( produc2004651681e_prod @ A @ B @ C )
      = ( product_case_prod @ A @ B @ C ) ) ).

% internal_case_prod_def
thf(fact_18_reflp__tllist,axiom,
    ! [B: $tType,A: $tType] :
      ( reflp @ ( product_prod @ ( coinductive_llist @ A ) @ B )
      @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o )
        @ ^ [Xs3: coinductive_llist @ A,A2: B] :
            ( product_case_prod @ ( coinductive_llist @ A ) @ B @ $o
            @ ^ [Ys3: coinductive_llist @ A,B2: B] :
                ( ( Xs3 = Ys3 )
                & ( ( coinductive_lfinite @ A @ Ys3 )
                 => ( A2 = B2 ) ) ) ) ) ) ).

% reflp_tllist
thf(fact_19_tllist_Oabs__eq__iff,axiom,
    ! [B: $tType,A: $tType,X: product_prod @ ( coinductive_llist @ A ) @ B,Y4: product_prod @ ( coinductive_llist @ A ) @ B] :
      ( ( ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
          @ ^ [Xs3: coinductive_llist @ A,A2: B] : ( tLList1672613558_llist @ B @ A @ A2 @ Xs3 )
          @ X )
        = ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
          @ ^ [Xs3: coinductive_llist @ A,A2: B] : ( tLList1672613558_llist @ B @ A @ A2 @ Xs3 )
          @ Y4 ) )
      = ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o )
        @ ^ [Xs3: coinductive_llist @ A,A2: B] :
            ( product_case_prod @ ( coinductive_llist @ A ) @ B @ $o
            @ ^ [Ys3: coinductive_llist @ A,B2: B] :
                ( ( Xs3 = Ys3 )
                & ( ( coinductive_lfinite @ A @ Ys3 )
                 => ( A2 = B2 ) ) ) )
        @ X
        @ Y4 ) ) ).

% tllist.abs_eq_iff
thf(fact_20_case__swap,axiom,
    ! [A: $tType,B: $tType,C: $tType,F: C > B > A,P3: product_prod @ C @ B] :
      ( ( product_case_prod @ B @ C @ A
        @ ^ [Y: B,X3: C] : ( F @ X3 @ Y )
        @ ( product_swap @ C @ B @ P3 ) )
      = ( product_case_prod @ C @ B @ A @ F @ P3 ) ) ).

% case_swap
thf(fact_21_llast__linfinite,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A] :
      ( ~ ( coinductive_lfinite @ A @ Xs )
     => ( ( coinductive_llast @ A @ Xs )
        = ( undefined @ A ) ) ) ).

% llast_linfinite
thf(fact_22_scomp__apply,axiom,
    ! [A: $tType,D: $tType,C: $tType,B: $tType] :
      ( ( product_scomp @ B @ C @ D @ A )
      = ( ^ [F2: B > ( product_prod @ C @ D ),G2: C > D > A,X3: B] : ( product_case_prod @ C @ D @ A @ G2 @ ( F2 @ X3 ) ) ) ) ).

% scomp_apply
thf(fact_23_lprefix__lappend__same,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,Zs: coinductive_llist @ A] :
      ( ( coinductive_lprefix @ A @ ( coinductive_lappend @ A @ Xs @ Ys ) @ ( coinductive_lappend @ A @ Xs @ Zs ) )
      = ( ( coinductive_lfinite @ A @ Xs )
       => ( coinductive_lprefix @ A @ Ys @ Zs ) ) ) ).

% lprefix_lappend_same
thf(fact_24_lfilter__lappend__lfinite,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,P: A > $o,Ys: coinductive_llist @ A] :
      ( ( coinductive_lfinite @ A @ Xs )
     => ( ( coinductive_lfilter @ A @ P @ ( coinductive_lappend @ A @ Xs @ Ys ) )
        = ( coinductive_lappend @ A @ ( coinductive_lfilter @ A @ P @ Xs ) @ ( coinductive_lfilter @ A @ P @ Ys ) ) ) ) ).

% lfilter_lappend_lfinite
thf(fact_25_case__prod__unfold,axiom,
    ! [C: $tType,B: $tType,A: $tType] :
      ( ( product_case_prod @ A @ B @ C )
      = ( ^ [C2: A > B > C,P4: product_prod @ A @ B] : ( C2 @ ( product_fst @ A @ B @ P4 ) @ ( product_snd @ A @ B @ P4 ) ) ) ) ).

% case_prod_unfold
thf(fact_26_case__prod__beta_H,axiom,
    ! [C: $tType,B: $tType,A: $tType] :
      ( ( product_case_prod @ A @ B @ C )
      = ( ^ [F2: A > B > C,X3: product_prod @ A @ B] : ( F2 @ ( product_fst @ A @ B @ X3 ) @ ( product_snd @ A @ B @ X3 ) ) ) ) ).

% case_prod_beta'
thf(fact_27_split__comp__eq,axiom,
    ! [A: $tType,C: $tType,B: $tType,D: $tType,F: A > B > C,G: D > A] :
      ( ( ^ [U: product_prod @ D @ B] : ( F @ ( G @ ( product_fst @ D @ B @ U ) ) @ ( product_snd @ D @ B @ U ) ) )
      = ( product_case_prod @ D @ B @ C
        @ ^ [X3: D] : ( F @ ( G @ X3 ) ) ) ) ).

% split_comp_eq
thf(fact_28_lprefix__refl,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A] : ( coinductive_lprefix @ A @ Xs @ Xs ) ).

% lprefix_refl
thf(fact_29_llist_Oleq__refl,axiom,
    ! [A: $tType,X: coinductive_llist @ A] : ( coinductive_lprefix @ A @ X @ X ) ).

% llist.leq_refl
thf(fact_30_lfilter__idem,axiom,
    ! [A: $tType,P: A > $o,Xs: coinductive_llist @ A] :
      ( ( coinductive_lfilter @ A @ P @ ( coinductive_lfilter @ A @ P @ Xs ) )
      = ( coinductive_lfilter @ A @ P @ Xs ) ) ).

% lfilter_idem
thf(fact_31_swap__swap,axiom,
    ! [B: $tType,A: $tType,P3: product_prod @ A @ B] :
      ( ( product_swap @ B @ A @ ( product_swap @ A @ B @ P3 ) )
      = P3 ) ).

% swap_swap
thf(fact_32_lfilter__K__True,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A] :
      ( ( coinductive_lfilter @ A
        @ ^ [Uu: A] : $true
        @ Xs )
      = Xs ) ).

% lfilter_K_True
thf(fact_33_tllist__of__llist__inject,axiom,
    ! [A: $tType,B: $tType,B3: B,Xs: coinductive_llist @ A,C3: B,Ys: coinductive_llist @ A] :
      ( ( ( tLList1672613558_llist @ B @ A @ B3 @ Xs )
        = ( tLList1672613558_llist @ B @ A @ C3 @ Ys ) )
      = ( ( Xs = Ys )
        & ( ( coinductive_lfinite @ A @ Ys )
         => ( B3 = C3 ) ) ) ) ).

% tllist_of_llist_inject
thf(fact_34_snd__apfst,axiom,
    ! [B: $tType,A: $tType,C: $tType,F: C > B,X: product_prod @ C @ A] :
      ( ( product_snd @ B @ A @ ( product_apfst @ C @ B @ A @ F @ X ) )
      = ( product_snd @ C @ A @ X ) ) ).

% snd_apfst
thf(fact_35_snd__swap,axiom,
    ! [B: $tType,A: $tType,X: product_prod @ A @ B] :
      ( ( product_snd @ B @ A @ ( product_swap @ A @ B @ X ) )
      = ( product_fst @ A @ B @ X ) ) ).

% snd_swap
thf(fact_36_fst__swap,axiom,
    ! [A: $tType,B: $tType,X: product_prod @ B @ A] :
      ( ( product_fst @ A @ B @ ( product_swap @ B @ A @ X ) )
      = ( product_snd @ B @ A @ X ) ) ).

% fst_swap
thf(fact_37_scomp__scomp,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,F3: $tType,E: $tType,F: A > ( product_prod @ E @ F3 ),G: E > F3 > ( product_prod @ C @ D ),H: C > D > B] :
      ( ( product_scomp @ A @ C @ D @ B @ ( product_scomp @ A @ E @ F3 @ ( product_prod @ C @ D ) @ F @ G ) @ H )
      = ( product_scomp @ A @ E @ F3 @ B @ F
        @ ^ [X3: E] : ( product_scomp @ F3 @ C @ D @ B @ ( G @ X3 ) @ H ) ) ) ).

% scomp_scomp
thf(fact_38_lprefix__trans,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,Zs: coinductive_llist @ A] :
      ( ( coinductive_lprefix @ A @ Xs @ Ys )
     => ( ( coinductive_lprefix @ A @ Ys @ Zs )
       => ( coinductive_lprefix @ A @ Xs @ Zs ) ) ) ).

% lprefix_trans
thf(fact_39_llist_Oleq__trans,axiom,
    ! [A: $tType,X: coinductive_llist @ A,Y4: coinductive_llist @ A,Z2: coinductive_llist @ A] :
      ( ( coinductive_lprefix @ A @ X @ Y4 )
     => ( ( coinductive_lprefix @ A @ Y4 @ Z2 )
       => ( coinductive_lprefix @ A @ X @ Z2 ) ) ) ).

% llist.leq_trans
thf(fact_40_lprefix__antisym,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( coinductive_lprefix @ A @ Xs @ Ys )
     => ( ( coinductive_lprefix @ A @ Ys @ Xs )
       => ( Xs = Ys ) ) ) ).

% lprefix_antisym
thf(fact_41_lprefix__lfilterI,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,P: A > $o] :
      ( ( coinductive_lprefix @ A @ Xs @ Ys )
     => ( coinductive_lprefix @ A @ ( coinductive_lfilter @ A @ P @ Xs ) @ ( coinductive_lfilter @ A @ P @ Ys ) ) ) ).

% lprefix_lfilterI
thf(fact_42_llist_Oleq__antisym,axiom,
    ! [A: $tType,X: coinductive_llist @ A,Y4: coinductive_llist @ A] :
      ( ( coinductive_lprefix @ A @ X @ Y4 )
     => ( ( coinductive_lprefix @ A @ Y4 @ X )
       => ( X = Y4 ) ) ) ).

% llist.leq_antisym
thf(fact_43_lprefix__down__linear,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Zs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( coinductive_lprefix @ A @ Xs @ Zs )
     => ( ( coinductive_lprefix @ A @ Ys @ Zs )
       => ( ( coinductive_lprefix @ A @ Xs @ Ys )
          | ( coinductive_lprefix @ A @ Ys @ Xs ) ) ) ) ).

% lprefix_down_linear
thf(fact_44_lfilter__lfilter,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o,Xs: coinductive_llist @ A] :
      ( ( coinductive_lfilter @ A @ P @ ( coinductive_lfilter @ A @ Q @ Xs ) )
      = ( coinductive_lfilter @ A
        @ ^ [X3: A] :
            ( ( P @ X3 )
            & ( Q @ X3 ) )
        @ Xs ) ) ).

% lfilter_lfilter
thf(fact_45_mem__Collect__eq,axiom,
    ! [A: $tType,A3: A,P: A > $o] :
      ( ( member @ A @ A3 @ ( collect @ A @ P ) )
      = ( P @ A3 ) ) ).

% mem_Collect_eq
thf(fact_46_Collect__mem__eq,axiom,
    ! [A: $tType,A5: set @ A] :
      ( ( collect @ A
        @ ^ [X3: A] : ( member @ A @ X3 @ A5 ) )
      = A5 ) ).

% Collect_mem_eq
thf(fact_47_Collect__cong,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ! [X4: A] :
          ( ( P @ X4 )
          = ( Q @ X4 ) )
     => ( ( collect @ A @ P )
        = ( collect @ A @ Q ) ) ) ).

% Collect_cong
thf(fact_48_ext,axiom,
    ! [B: $tType,A: $tType,F: A > B,G: A > B] :
      ( ! [X4: A] :
          ( ( F @ X4 )
          = ( G @ X4 ) )
     => ( F = G ) ) ).

% ext
thf(fact_49_llist_Orel__reflp,axiom,
    ! [A: $tType,R2: A > A > $o] :
      ( ( reflp @ A @ R2 )
     => ( reflp @ ( coinductive_llist @ A ) @ ( coindu1486289336t_all2 @ A @ A @ R2 ) ) ) ).

% llist.rel_reflp
thf(fact_50_tllist_Oabs__induct,axiom,
    ! [B: $tType,A: $tType,P: ( tLList446370796tllist @ A @ B ) > $o,X: tLList446370796tllist @ A @ B] :
      ( ! [Y3: product_prod @ ( coinductive_llist @ A ) @ B] :
          ( P
          @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
            @ ^ [Xs3: coinductive_llist @ A,A2: B] : ( tLList1672613558_llist @ B @ A @ A2 @ Xs3 )
            @ Y3 ) )
     => ( P @ X ) ) ).

% tllist.abs_induct
thf(fact_51_scomp__unfold,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType] :
      ( ( product_scomp @ A @ B @ C @ D )
      = ( ^ [F2: A > ( product_prod @ B @ C ),G2: B > C > D,X3: A] : ( G2 @ ( product_fst @ B @ C @ ( F2 @ X3 ) ) @ ( product_snd @ B @ C @ ( F2 @ X3 ) ) ) ) ) ).

% scomp_unfold
thf(fact_52_prod__eqI,axiom,
    ! [B: $tType,A: $tType,P3: product_prod @ A @ B,Q2: product_prod @ A @ B] :
      ( ( ( product_fst @ A @ B @ P3 )
        = ( product_fst @ A @ B @ Q2 ) )
     => ( ( ( product_snd @ A @ B @ P3 )
          = ( product_snd @ A @ B @ Q2 ) )
       => ( P3 = Q2 ) ) ) ).

% prod_eqI
thf(fact_53_prod_Oexpand,axiom,
    ! [B: $tType,A: $tType,Prod: product_prod @ A @ B,Prod2: product_prod @ A @ B] :
      ( ( ( ( product_fst @ A @ B @ Prod )
          = ( product_fst @ A @ B @ Prod2 ) )
        & ( ( product_snd @ A @ B @ Prod )
          = ( product_snd @ A @ B @ Prod2 ) ) )
     => ( Prod = Prod2 ) ) ).

% prod.expand
thf(fact_54_prod__eq__iff,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ^ [Y2: product_prod @ A @ B,Z: product_prod @ A @ B] : Y2 = Z )
      = ( ^ [S2: product_prod @ A @ B,T2: product_prod @ A @ B] :
            ( ( ( product_fst @ A @ B @ S2 )
              = ( product_fst @ A @ B @ T2 ) )
            & ( ( product_snd @ A @ B @ S2 )
              = ( product_snd @ A @ B @ T2 ) ) ) ) ) ).

% prod_eq_iff
thf(fact_55_lfinite__lfilterI,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,P: A > $o] :
      ( ( coinductive_lfinite @ A @ Xs )
     => ( coinductive_lfinite @ A @ ( coinductive_lfilter @ A @ P @ Xs ) ) ) ).

% lfinite_lfilterI
thf(fact_56_llist__all2__lfilterI,axiom,
    ! [A: $tType,B: $tType,P: A > B > $o,Xs: coinductive_llist @ A,Ys: coinductive_llist @ B,Q1: A > $o,Q22: B > $o] :
      ( ( coindu1486289336t_all2 @ A @ B @ P @ Xs @ Ys )
     => ( ! [X4: A,Y3: B] :
            ( ( P @ X4 @ Y3 )
           => ( ( Q1 @ X4 )
              = ( Q22 @ Y3 ) ) )
       => ( coindu1486289336t_all2 @ A @ B @ P @ ( coinductive_lfilter @ A @ Q1 @ Xs ) @ ( coinductive_lfilter @ B @ Q22 @ Ys ) ) ) ) ).

% llist_all2_lfilterI
thf(fact_57_lprefix__lfiniteD,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( coinductive_lprefix @ A @ Xs @ Ys )
     => ( ( coinductive_lfinite @ A @ Ys )
       => ( coinductive_lfinite @ A @ Xs ) ) ) ).

% lprefix_lfiniteD
thf(fact_58_not__lfinite__lprefix__conv__eq,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ~ ( coinductive_lfinite @ A @ Xs )
     => ( ( coinductive_lprefix @ A @ Xs @ Ys )
        = ( Xs = Ys ) ) ) ).

% not_lfinite_lprefix_conv_eq
thf(fact_59_lprefix__lappend,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] : ( coinductive_lprefix @ A @ Xs @ ( coinductive_lappend @ A @ Xs @ Ys ) ) ).

% lprefix_lappend
thf(fact_60_lappend__lprefixE,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,Zs: coinductive_llist @ A] :
      ( ( coinductive_lprefix @ A @ ( coinductive_lappend @ A @ Xs @ Ys ) @ Zs )
     => ~ ! [Zs2: coinductive_llist @ A] :
            ( Zs
           != ( coinductive_lappend @ A @ Xs @ Zs2 ) ) ) ).

% lappend_lprefixE
thf(fact_61_lprefix__lappendD,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,Zs: coinductive_llist @ A] :
      ( ( coinductive_lprefix @ A @ Xs @ ( coinductive_lappend @ A @ Ys @ Zs ) )
     => ( ( coinductive_lprefix @ A @ Xs @ Ys )
        | ( coinductive_lprefix @ A @ Ys @ Xs ) ) ) ).

% lprefix_lappendD
thf(fact_62_lprefix__conv__lappend,axiom,
    ! [A: $tType] :
      ( ( coinductive_lprefix @ A )
      = ( ^ [Xs3: coinductive_llist @ A,Ys3: coinductive_llist @ A] :
          ? [Zs3: coinductive_llist @ A] :
            ( Ys3
            = ( coinductive_lappend @ A @ Xs3 @ Zs3 ) ) ) ) ).

% lprefix_conv_lappend
thf(fact_63_lprefix__lappend__sameI,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,Zs: coinductive_llist @ A] :
      ( ( coinductive_lprefix @ A @ Xs @ Ys )
     => ( coinductive_lprefix @ A @ ( coinductive_lappend @ A @ Zs @ Xs ) @ ( coinductive_lappend @ A @ Zs @ Ys ) ) ) ).

% lprefix_lappend_sameI
thf(fact_64_tllist__of__llist__cong,axiom,
    ! [B: $tType,A: $tType,Xs: coinductive_llist @ A,Xs2: coinductive_llist @ A,B3: B,B5: B] :
      ( ( Xs = Xs2 )
     => ( ( ( coinductive_lfinite @ A @ Xs2 )
         => ( B3 = B5 ) )
       => ( ( tLList1672613558_llist @ B @ A @ B3 @ Xs )
          = ( tLList1672613558_llist @ B @ A @ B5 @ Xs2 ) ) ) ) ).

% tllist_of_llist_cong
thf(fact_65_snd__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( product_snd @ A @ B )
      = ( product_case_prod @ A @ B @ B
        @ ^ [X1: A,X2: B] : X2 ) ) ).

% snd_def
thf(fact_66_scomp__def,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType] :
      ( ( product_scomp @ A @ B @ C @ D )
      = ( ^ [F2: A > ( product_prod @ B @ C ),G2: B > C > D,X3: A] : ( product_case_prod @ B @ C @ D @ G2 @ ( F2 @ X3 ) ) ) ) ).

% scomp_def
thf(fact_67_case__prod__beta,axiom,
    ! [A: $tType,C: $tType,B: $tType] :
      ( ( product_case_prod @ B @ C @ A )
      = ( ^ [F2: B > C > A,P4: product_prod @ B @ C] : ( F2 @ ( product_fst @ B @ C @ P4 ) @ ( product_snd @ B @ C @ P4 ) ) ) ) ).

% case_prod_beta
thf(fact_68_prod_Ocase__eq__if,axiom,
    ! [C: $tType,B: $tType,A: $tType] :
      ( ( product_case_prod @ A @ B @ C )
      = ( ^ [F2: A > B > C,Prod3: product_prod @ A @ B] : ( F2 @ ( product_fst @ A @ B @ Prod3 ) @ ( product_snd @ A @ B @ Prod3 ) ) ) ) ).

% prod.case_eq_if
thf(fact_69_Product__Type_OCollect__case__prodD,axiom,
    ! [B: $tType,A: $tType,X: product_prod @ A @ B,A5: A > B > $o] :
      ( ( member @ ( product_prod @ A @ B ) @ X @ ( collect @ ( product_prod @ A @ B ) @ ( product_case_prod @ A @ B @ $o @ A5 ) ) )
     => ( A5 @ ( product_fst @ A @ B @ X ) @ ( product_snd @ A @ B @ X ) ) ) ).

% Product_Type.Collect_case_prodD
thf(fact_70_lfilter__eq__lappend__lfiniteD,axiom,
    ! [A: $tType,P: A > $o,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,Zs: coinductive_llist @ A] :
      ( ( ( coinductive_lfilter @ A @ P @ Xs )
        = ( coinductive_lappend @ A @ Ys @ Zs ) )
     => ( ( coinductive_lfinite @ A @ Ys )
       => ? [Us: coinductive_llist @ A,Vs: coinductive_llist @ A] :
            ( ( Xs
              = ( coinductive_lappend @ A @ Us @ Vs ) )
            & ( coinductive_lfinite @ A @ Us )
            & ( Ys
              = ( coinductive_lfilter @ A @ P @ Us ) )
            & ( Zs
              = ( coinductive_lfilter @ A @ P @ Vs ) ) ) ) ) ).

% lfilter_eq_lappend_lfiniteD
thf(fact_71_exE__realizer,axiom,
    ! [C: $tType,A: $tType,B: $tType,P: A > B > $o,P3: product_prod @ B @ A,Q: C > $o,F: B > A > C] :
      ( ( P @ ( product_snd @ B @ A @ P3 ) @ ( product_fst @ B @ A @ P3 ) )
     => ( ! [X4: B,Y3: A] :
            ( ( P @ Y3 @ X4 )
           => ( Q @ ( F @ X4 @ Y3 ) ) )
       => ( Q @ ( product_case_prod @ B @ A @ C @ F @ P3 ) ) ) ) ).

% exE_realizer
thf(fact_72_lappendt_Oabs__eq,axiom,
    ! [B: $tType,A: $tType,Xa: coinductive_llist @ A,X: product_prod @ ( coinductive_llist @ A ) @ B] :
      ( ( tLList98099029ppendt @ A @ B @ Xa
        @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
          @ ^ [Xs3: coinductive_llist @ A,A2: B] : ( tLList1672613558_llist @ B @ A @ A2 @ Xs3 )
          @ X ) )
      = ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
        @ ^ [Xs3: coinductive_llist @ A,A2: B] : ( tLList1672613558_llist @ B @ A @ A2 @ Xs3 )
        @ ( product_apfst @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ B @ ( coinductive_lappend @ A @ Xa ) @ X ) ) ) ).

% lappendt.abs_eq
thf(fact_73_exE__realizer_H,axiom,
    ! [A: $tType,B: $tType,P: A > B > $o,P3: product_prod @ B @ A] :
      ( ( P @ ( product_snd @ B @ A @ P3 ) @ ( product_fst @ B @ A @ P3 ) )
     => ~ ! [X4: B,Y3: A] :
            ~ ( P @ Y3 @ X4 ) ) ).

% exE_realizer'
thf(fact_74_tllist__of__llist__eq__lappendt__conv,axiom,
    ! [B: $tType,A: $tType,A3: B,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,Zs: tLList446370796tllist @ A @ B] :
      ( ( ( tLList1672613558_llist @ B @ A @ A3 @ Xs )
        = ( tLList98099029ppendt @ A @ B @ Ys @ Zs ) )
      = ( ? [Xs4: coinductive_llist @ A,A6: B] :
            ( ( Xs
              = ( coinductive_lappend @ A @ Ys @ Xs4 ) )
            & ( Zs
              = ( tLList1672613558_llist @ B @ A @ A6 @ Xs4 ) )
            & ( ( coinductive_lfinite @ A @ Ys )
             => ( A3 = A6 ) ) ) ) ) ).

% tllist_of_llist_eq_lappendt_conv
thf(fact_75_Coinductive__List_Olprefix__nitpick__simps,axiom,
    ! [A: $tType] :
      ( ( coinductive_lprefix @ A )
      = ( ^ [Xs3: coinductive_llist @ A,Ys3: coinductive_llist @ A] :
            ( ( ( coinductive_lfinite @ A @ Xs3 )
             => ( coindu328551480prefix @ A @ Xs3 @ Ys3 ) )
            & ( ~ ( coinductive_lfinite @ A @ Xs3 )
             => ( Xs3 = Ys3 ) ) ) ) ) ).

% Coinductive_List.lprefix_nitpick_simps
thf(fact_76_cr__tllist__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList47617868tllist @ A @ B )
      = ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( tLList446370796tllist @ A @ B ) > $o )
        @ ^ [Xs3: coinductive_llist @ A,B2: B] :
            ( ^ [Y2: tLList446370796tllist @ A @ B,Z: tLList446370796tllist @ A @ B] : Y2 = Z
            @ ( tLList1672613558_llist @ B @ A @ B2 @ Xs3 ) ) ) ) ).

% cr_tllist_def
thf(fact_77_llast__lappend,axiom,
    ! [A: $tType,Ys: coinductive_llist @ A,Xs: coinductive_llist @ A] :
      ( ( ( coinductive_lnull @ A @ Ys )
       => ( ( coinductive_llast @ A @ ( coinductive_lappend @ A @ Xs @ Ys ) )
          = ( coinductive_llast @ A @ Xs ) ) )
      & ( ~ ( coinductive_lnull @ A @ Ys )
       => ( ( ( coinductive_lfinite @ A @ Xs )
           => ( ( coinductive_llast @ A @ ( coinductive_lappend @ A @ Xs @ Ys ) )
              = ( coinductive_llast @ A @ Ys ) ) )
          & ( ~ ( coinductive_lfinite @ A @ Xs )
           => ( ( coinductive_llast @ A @ ( coinductive_lappend @ A @ Xs @ Ys ) )
              = ( undefined @ A ) ) ) ) ) ) ).

% llast_lappend
thf(fact_78_llast__lappend__LCons,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Y4: A,Ys: coinductive_llist @ A] :
      ( ( coinductive_lfinite @ A @ Xs )
     => ( ( coinductive_llast @ A @ ( coinductive_lappend @ A @ Xs @ ( coinductive_LCons @ A @ Y4 @ Ys ) ) )
        = ( coinductive_llast @ A @ ( coinductive_LCons @ A @ Y4 @ Ys ) ) ) ) ).

% llast_lappend_LCons
thf(fact_79_DEADID_Orel__reflp,axiom,
    ! [A: $tType] :
      ( reflp @ A
      @ ^ [Y2: A,Z: A] : Y2 = Z ) ).

% DEADID.rel_reflp
thf(fact_80_llist_Oinject,axiom,
    ! [A: $tType,X21: A,X22: coinductive_llist @ A,Y21: A,Y22: coinductive_llist @ A] :
      ( ( ( coinductive_LCons @ A @ X21 @ X22 )
        = ( coinductive_LCons @ A @ Y21 @ Y22 ) )
      = ( ( X21 = Y21 )
        & ( X22 = Y22 ) ) ) ).

% llist.inject
thf(fact_81_LCons__lprefix__LCons,axiom,
    ! [A: $tType,X: A,Xs: coinductive_llist @ A,Y4: A,Ys: coinductive_llist @ A] :
      ( ( coinductive_lprefix @ A @ ( coinductive_LCons @ A @ X @ Xs ) @ ( coinductive_LCons @ A @ Y4 @ Ys ) )
      = ( ( X = Y4 )
        & ( coinductive_lprefix @ A @ Xs @ Ys ) ) ) ).

% LCons_lprefix_LCons
thf(fact_82_lfinite__LCons,axiom,
    ! [A: $tType,X: A,Xs: coinductive_llist @ A] :
      ( ( coinductive_lfinite @ A @ ( coinductive_LCons @ A @ X @ Xs ) )
      = ( coinductive_lfinite @ A @ Xs ) ) ).

% lfinite_LCons
thf(fact_83_lfinite__code_I2_J,axiom,
    ! [B: $tType,X: B,Xs: coinductive_llist @ B] :
      ( ( coinductive_lfinite @ B @ ( coinductive_LCons @ B @ X @ Xs ) )
      = ( coinductive_lfinite @ B @ Xs ) ) ).

% lfinite_code(2)
thf(fact_84_llist__all2__LCons__LCons,axiom,
    ! [A: $tType,B: $tType,R2: A > B > $o,X21: A,X22: coinductive_llist @ A,Y21: B,Y22: coinductive_llist @ B] :
      ( ( coindu1486289336t_all2 @ A @ B @ R2 @ ( coinductive_LCons @ A @ X21 @ X22 ) @ ( coinductive_LCons @ B @ Y21 @ Y22 ) )
      = ( ( R2 @ X21 @ Y21 )
        & ( coindu1486289336t_all2 @ A @ B @ R2 @ X22 @ Y22 ) ) ) ).

% llist_all2_LCons_LCons
thf(fact_85_lappend__code_I2_J,axiom,
    ! [A: $tType,Xa: A,X: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( coinductive_lappend @ A @ ( coinductive_LCons @ A @ Xa @ X ) @ Ys )
      = ( coinductive_LCons @ A @ Xa @ ( coinductive_lappend @ A @ X @ Ys ) ) ) ).

% lappend_code(2)
thf(fact_86_lnull__lappend,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( coinductive_lnull @ A @ ( coinductive_lappend @ A @ Xs @ Ys ) )
      = ( ( coinductive_lnull @ A @ Xs )
        & ( coinductive_lnull @ A @ Ys ) ) ) ).

% lnull_lappend
thf(fact_87_lappend_Odisc__iff_I2_J,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( ~ ( coinductive_lnull @ A @ ( coinductive_lappend @ A @ Xs @ Ys ) ) )
      = ( ~ ( coinductive_lnull @ A @ Xs )
        | ~ ( coinductive_lnull @ A @ Ys ) ) ) ).

% lappend.disc_iff(2)
thf(fact_88_lfilter__LCons,axiom,
    ! [A: $tType,P: A > $o,X: A,Xs: coinductive_llist @ A] :
      ( ( ( P @ X )
       => ( ( coinductive_lfilter @ A @ P @ ( coinductive_LCons @ A @ X @ Xs ) )
          = ( coinductive_LCons @ A @ X @ ( coinductive_lfilter @ A @ P @ Xs ) ) ) )
      & ( ~ ( P @ X )
       => ( ( coinductive_lfilter @ A @ P @ ( coinductive_LCons @ A @ X @ Xs ) )
          = ( coinductive_lfilter @ A @ P @ Xs ) ) ) ) ).

% lfilter_LCons
thf(fact_89_llast__LCons2,axiom,
    ! [A: $tType,X: A,Y4: A,Xs: coinductive_llist @ A] :
      ( ( coinductive_llast @ A @ ( coinductive_LCons @ A @ X @ ( coinductive_LCons @ A @ Y4 @ Xs ) ) )
      = ( coinductive_llast @ A @ ( coinductive_LCons @ A @ Y4 @ Xs ) ) ) ).

% llast_LCons2
thf(fact_90_lappend_Oexhaust,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( ( coinductive_lnull @ A @ Xs )
       => ~ ( coinductive_lnull @ A @ Ys ) )
     => ( ~ ( coinductive_lnull @ A @ Xs )
        | ~ ( coinductive_lnull @ A @ Ys ) ) ) ).

% lappend.exhaust
thf(fact_91_not__lnull__conv,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A] :
      ( ( ~ ( coinductive_lnull @ A @ Xs ) )
      = ( ? [X3: A,Xs4: coinductive_llist @ A] :
            ( Xs
            = ( coinductive_LCons @ A @ X3 @ Xs4 ) ) ) ) ).

% not_lnull_conv
thf(fact_92_lzip_Oexhaust,axiom,
    ! [A: $tType,B: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ B] :
      ( ~ ( ( coinductive_lnull @ A @ Xs )
          | ( coinductive_lnull @ B @ Ys ) )
     => ~ ( ~ ( coinductive_lnull @ A @ Xs )
         => ( coinductive_lnull @ B @ Ys ) ) ) ).

% lzip.exhaust
thf(fact_93_llist_OdiscI_I2_J,axiom,
    ! [A: $tType,Llist: coinductive_llist @ A,X21: A,X22: coinductive_llist @ A] :
      ( ( Llist
        = ( coinductive_LCons @ A @ X21 @ X22 ) )
     => ~ ( coinductive_lnull @ A @ Llist ) ) ).

% llist.discI(2)
thf(fact_94_llist_Odisc_I2_J,axiom,
    ! [A: $tType,X21: A,X22: coinductive_llist @ A] :
      ~ ( coinductive_lnull @ A @ ( coinductive_LCons @ A @ X21 @ X22 ) ) ).

% llist.disc(2)
thf(fact_95_llast__LCons,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,X: A] :
      ( ( ( coinductive_lnull @ A @ Xs )
       => ( ( coinductive_llast @ A @ ( coinductive_LCons @ A @ X @ Xs ) )
          = X ) )
      & ( ~ ( coinductive_lnull @ A @ Xs )
       => ( ( coinductive_llast @ A @ ( coinductive_LCons @ A @ X @ Xs ) )
          = ( coinductive_llast @ A @ Xs ) ) ) ) ).

% llast_LCons
thf(fact_96_lprefix__not__lnullD,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( coinductive_lprefix @ A @ Xs @ Ys )
     => ( ~ ( coinductive_lnull @ A @ Xs )
       => ~ ( coinductive_lnull @ A @ Ys ) ) ) ).

% lprefix_not_lnullD
thf(fact_97_lprefix__lnullD,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( coinductive_lprefix @ A @ Xs @ Ys )
     => ( ( coinductive_lnull @ A @ Ys )
       => ( coinductive_lnull @ A @ Xs ) ) ) ).

% lprefix_lnullD
thf(fact_98_lprefix__lnull,axiom,
    ! [A: $tType,Ys: coinductive_llist @ A,Xs: coinductive_llist @ A] :
      ( ( coinductive_lnull @ A @ Ys )
     => ( ( coinductive_lprefix @ A @ Xs @ Ys )
        = ( coinductive_lnull @ A @ Xs ) ) ) ).

% lprefix_lnull
thf(fact_99_lnull__lprefix,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( coinductive_lnull @ A @ Xs )
     => ( coinductive_lprefix @ A @ Xs @ Ys ) ) ).

% lnull_lprefix
thf(fact_100_LCons__lprefix__conv,axiom,
    ! [A: $tType,X: A,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( coinductive_lprefix @ A @ ( coinductive_LCons @ A @ X @ Xs ) @ Ys )
      = ( ? [Ys4: coinductive_llist @ A] :
            ( ( Ys
              = ( coinductive_LCons @ A @ X @ Ys4 ) )
            & ( coinductive_lprefix @ A @ Xs @ Ys4 ) ) ) ) ).

% LCons_lprefix_conv
thf(fact_101_Le__LCons,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,X: A] :
      ( ( coinductive_lprefix @ A @ Xs @ Ys )
     => ( coinductive_lprefix @ A @ ( coinductive_LCons @ A @ X @ Xs ) @ ( coinductive_LCons @ A @ X @ Ys ) ) ) ).

% Le_LCons
thf(fact_102_lnull__imp__lfinite,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A] :
      ( ( coinductive_lnull @ A @ Xs )
     => ( coinductive_lfinite @ A @ Xs ) ) ).

% lnull_imp_lfinite
thf(fact_103_llist__all2__lnullD,axiom,
    ! [A: $tType,B: $tType,P: A > B > $o,Xs: coinductive_llist @ A,Ys: coinductive_llist @ B] :
      ( ( coindu1486289336t_all2 @ A @ B @ P @ Xs @ Ys )
     => ( ( coinductive_lnull @ A @ Xs )
        = ( coinductive_lnull @ B @ Ys ) ) ) ).

% llist_all2_lnullD
thf(fact_104_lfinite__LConsI,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,X: A] :
      ( ( coinductive_lfinite @ A @ Xs )
     => ( coinductive_lfinite @ A @ ( coinductive_LCons @ A @ X @ Xs ) ) ) ).

% lfinite_LConsI
thf(fact_105_llist__all2__LCons2,axiom,
    ! [B: $tType,A: $tType,P: A > B > $o,Xs: coinductive_llist @ A,Y4: B,Ys: coinductive_llist @ B] :
      ( ( coindu1486289336t_all2 @ A @ B @ P @ Xs @ ( coinductive_LCons @ B @ Y4 @ Ys ) )
      = ( ? [X3: A,Xs4: coinductive_llist @ A] :
            ( ( Xs
              = ( coinductive_LCons @ A @ X3 @ Xs4 ) )
            & ( P @ X3 @ Y4 )
            & ( coindu1486289336t_all2 @ A @ B @ P @ Xs4 @ Ys ) ) ) ) ).

% llist_all2_LCons2
thf(fact_106_llist__all2__LCons1,axiom,
    ! [A: $tType,B: $tType,P: A > B > $o,X: A,Xs: coinductive_llist @ A,Ys: coinductive_llist @ B] :
      ( ( coindu1486289336t_all2 @ A @ B @ P @ ( coinductive_LCons @ A @ X @ Xs ) @ Ys )
      = ( ? [Y: B,Ys4: coinductive_llist @ B] :
            ( ( Ys
              = ( coinductive_LCons @ B @ Y @ Ys4 ) )
            & ( P @ X @ Y )
            & ( coindu1486289336t_all2 @ A @ B @ P @ Xs @ Ys4 ) ) ) ) ).

% llist_all2_LCons1
thf(fact_107_llist_Orel__intros_I2_J,axiom,
    ! [A: $tType,B: $tType,R2: A > B > $o,X21: A,Y21: B,X22: coinductive_llist @ A,Y22: coinductive_llist @ B] :
      ( ( R2 @ X21 @ Y21 )
     => ( ( coindu1486289336t_all2 @ A @ B @ R2 @ X22 @ Y22 )
       => ( coindu1486289336t_all2 @ A @ B @ R2 @ ( coinductive_LCons @ A @ X21 @ X22 ) @ ( coinductive_LCons @ B @ Y21 @ Y22 ) ) ) ) ).

% llist.rel_intros(2)
thf(fact_108_lappend__lnull2,axiom,
    ! [A: $tType,Ys: coinductive_llist @ A,Xs: coinductive_llist @ A] :
      ( ( coinductive_lnull @ A @ Ys )
     => ( ( coinductive_lappend @ A @ Xs @ Ys )
        = Xs ) ) ).

% lappend_lnull2
thf(fact_109_lappend__lnull1,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( coinductive_lnull @ A @ Xs )
     => ( ( coinductive_lappend @ A @ Xs @ Ys )
        = Ys ) ) ).

% lappend_lnull1
thf(fact_110_lappend_Odisc_I1_J,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( coinductive_lnull @ A @ Xs )
     => ( ( coinductive_lnull @ A @ Ys )
       => ( coinductive_lnull @ A @ ( coinductive_lappend @ A @ Xs @ Ys ) ) ) ) ).

% lappend.disc(1)
thf(fact_111_lappend_Odisc_I2_J,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( ~ ( coinductive_lnull @ A @ Xs )
        | ~ ( coinductive_lnull @ A @ Ys ) )
     => ~ ( coinductive_lnull @ A @ ( coinductive_lappend @ A @ Xs @ Ys ) ) ) ).

% lappend.disc(2)
thf(fact_112_lfilter__LCons__found,axiom,
    ! [A: $tType,P: A > $o,X: A,Xs: coinductive_llist @ A] :
      ( ( P @ X )
     => ( ( coinductive_lfilter @ A @ P @ ( coinductive_LCons @ A @ X @ Xs ) )
        = ( coinductive_LCons @ A @ X @ ( coinductive_lfilter @ A @ P @ Xs ) ) ) ) ).

% lfilter_LCons_found
thf(fact_113_lfilter__LCons__seek,axiom,
    ! [A: $tType,P3: A > $o,X: A,L2: coinductive_llist @ A] :
      ( ~ ( P3 @ X )
     => ( ( coinductive_lfilter @ A @ P3 @ ( coinductive_LCons @ A @ X @ L2 ) )
        = ( coinductive_lfilter @ A @ P3 @ L2 ) ) ) ).

% lfilter_LCons_seek
thf(fact_114_Coinductive__List_Ofinite__lprefix__def,axiom,
    ! [A: $tType] :
      ( ( coindu328551480prefix @ A )
      = ( coinductive_lprefix @ A ) ) ).

% Coinductive_List.finite_lprefix_def
thf(fact_115_lstrict__prefix__lappend__conv,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( coindu1478340336prefix @ A @ Xs @ ( coinductive_lappend @ A @ Xs @ Ys ) )
      = ( ( coinductive_lfinite @ A @ Xs )
        & ~ ( coinductive_lnull @ A @ Ys ) ) ) ).

% lstrict_prefix_lappend_conv
thf(fact_116_lfilter__eq__LConsD,axiom,
    ! [A: $tType,P: A > $o,Ys: coinductive_llist @ A,X: A,Xs: coinductive_llist @ A] :
      ( ( ( coinductive_lfilter @ A @ P @ Ys )
        = ( coinductive_LCons @ A @ X @ Xs ) )
     => ? [Us: coinductive_llist @ A,Vs: coinductive_llist @ A] :
          ( ( Ys
            = ( coinductive_lappend @ A @ Us @ ( coinductive_LCons @ A @ X @ Vs ) ) )
          & ( coinductive_lfinite @ A @ Us )
          & ! [X5: A] :
              ( ( member @ A @ X5 @ ( coinductive_lset @ A @ Us ) )
             => ~ ( P @ X5 ) )
          & ( P @ X )
          & ( Xs
            = ( coinductive_lfilter @ A @ P @ Vs ) ) ) ) ).

% lfilter_eq_LConsD
thf(fact_117_reflpD,axiom,
    ! [A: $tType,R3: A > A > $o,X: A] :
      ( ( reflp @ A @ R3 )
     => ( R3 @ X @ X ) ) ).

% reflpD
thf(fact_118_reflpE,axiom,
    ! [A: $tType,R3: A > A > $o,X: A] :
      ( ( reflp @ A @ R3 )
     => ( R3 @ X @ X ) ) ).

% reflpE
thf(fact_119_reflpI,axiom,
    ! [A: $tType,R3: A > A > $o] :
      ( ! [X4: A] : ( R3 @ X4 @ X4 )
     => ( reflp @ A @ R3 ) ) ).

% reflpI
thf(fact_120_reflp__def,axiom,
    ! [A: $tType] :
      ( ( reflp @ A )
      = ( ^ [R: A > A > $o] :
          ! [X3: A] : ( R @ X3 @ X3 ) ) ) ).

% reflp_def
thf(fact_121_llist__all2__same,axiom,
    ! [A: $tType,P: A > A > $o,Xs: coinductive_llist @ A] :
      ( ( coindu1486289336t_all2 @ A @ A @ P @ Xs @ Xs )
      = ( ! [X3: A] :
            ( ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs ) )
           => ( P @ X3 @ X3 ) ) ) ) ).

% llist_all2_same
thf(fact_122_lstrict__prefix__code_I4_J,axiom,
    ! [B: $tType,X: B,Xs: coinductive_llist @ B,Y4: B,Ys: coinductive_llist @ B] :
      ( ( coindu1478340336prefix @ B @ ( coinductive_LCons @ B @ X @ Xs ) @ ( coinductive_LCons @ B @ Y4 @ Ys ) )
      = ( ( X = Y4 )
        & ( coindu1478340336prefix @ B @ Xs @ Ys ) ) ) ).

% lstrict_prefix_code(4)
thf(fact_123_lset__lfilter,axiom,
    ! [A: $tType,P: A > $o,Xs: coinductive_llist @ A] :
      ( ( coinductive_lset @ A @ ( coinductive_lfilter @ A @ P @ Xs ) )
      = ( collect @ A
        @ ^ [X3: A] :
            ( ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs ) )
            & ( P @ X3 ) ) ) ) ).

% lset_lfilter
thf(fact_124_lnull__lfilter,axiom,
    ! [A: $tType,P: A > $o,Xs: coinductive_llist @ A] :
      ( ( coinductive_lnull @ A @ ( coinductive_lfilter @ A @ P @ Xs ) )
      = ( ! [X3: A] :
            ( ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs ) )
           => ~ ( P @ X3 ) ) ) ) ).

% lnull_lfilter
thf(fact_125_llist__less__induct,axiom,
    ! [A: $tType,P: ( coinductive_llist @ A ) > $o,Xs: coinductive_llist @ A] :
      ( ! [Xs5: coinductive_llist @ A] :
          ( ! [Ys5: coinductive_llist @ A] :
              ( ( coindu1478340336prefix @ A @ Ys5 @ Xs5 )
             => ( P @ Ys5 ) )
         => ( P @ Xs5 ) )
     => ( P @ Xs ) ) ).

% llist_less_induct
thf(fact_126_lset__intros_I2_J,axiom,
    ! [A: $tType,X: A,Xs: coinductive_llist @ A,X6: A] :
      ( ( member @ A @ X @ ( coinductive_lset @ A @ Xs ) )
     => ( member @ A @ X @ ( coinductive_lset @ A @ ( coinductive_LCons @ A @ X6 @ Xs ) ) ) ) ).

% lset_intros(2)
thf(fact_127_lset__intros_I1_J,axiom,
    ! [A: $tType,X: A,Xs: coinductive_llist @ A] : ( member @ A @ X @ ( coinductive_lset @ A @ ( coinductive_LCons @ A @ X @ Xs ) ) ) ).

% lset_intros(1)
thf(fact_128_llist_Oset__intros_I2_J,axiom,
    ! [A: $tType,X: A,A22: coinductive_llist @ A,A1: A] :
      ( ( member @ A @ X @ ( coinductive_lset @ A @ A22 ) )
     => ( member @ A @ X @ ( coinductive_lset @ A @ ( coinductive_LCons @ A @ A1 @ A22 ) ) ) ) ).

% llist.set_intros(2)
thf(fact_129_llist_Oset__intros_I1_J,axiom,
    ! [A: $tType,A1: A,A22: coinductive_llist @ A] : ( member @ A @ A1 @ ( coinductive_lset @ A @ ( coinductive_LCons @ A @ A1 @ A22 ) ) ) ).

% llist.set_intros(1)
thf(fact_130_lset__cases,axiom,
    ! [A: $tType,X: A,Xs: coinductive_llist @ A] :
      ( ( member @ A @ X @ ( coinductive_lset @ A @ Xs ) )
     => ( ! [Xs6: coinductive_llist @ A] :
            ( Xs
           != ( coinductive_LCons @ A @ X @ Xs6 ) )
       => ~ ! [X7: A,Xs6: coinductive_llist @ A] :
              ( ( Xs
                = ( coinductive_LCons @ A @ X7 @ Xs6 ) )
             => ~ ( member @ A @ X @ ( coinductive_lset @ A @ Xs6 ) ) ) ) ) ).

% lset_cases
thf(fact_131_lset__induct,axiom,
    ! [A: $tType,X: A,Xs: coinductive_llist @ A,P: ( coinductive_llist @ A ) > $o] :
      ( ( member @ A @ X @ ( coinductive_lset @ A @ Xs ) )
     => ( ! [Xs5: coinductive_llist @ A] : ( P @ ( coinductive_LCons @ A @ X @ Xs5 ) )
       => ( ! [X7: A,Xs5: coinductive_llist @ A] :
              ( ( member @ A @ X @ ( coinductive_lset @ A @ Xs5 ) )
             => ( ( X != X7 )
               => ( ( P @ Xs5 )
                 => ( P @ ( coinductive_LCons @ A @ X7 @ Xs5 ) ) ) ) )
         => ( P @ Xs ) ) ) ) ).

% lset_induct
thf(fact_132_lset__induct_H,axiom,
    ! [A: $tType,X: A,Xs: coinductive_llist @ A,P: ( coinductive_llist @ A ) > $o] :
      ( ( member @ A @ X @ ( coinductive_lset @ A @ Xs ) )
     => ( ! [Xs5: coinductive_llist @ A] : ( P @ ( coinductive_LCons @ A @ X @ Xs5 ) )
       => ( ! [X7: A,Xs5: coinductive_llist @ A] :
              ( ( member @ A @ X @ ( coinductive_lset @ A @ Xs5 ) )
             => ( ( P @ Xs5 )
               => ( P @ ( coinductive_LCons @ A @ X7 @ Xs5 ) ) ) )
         => ( P @ Xs ) ) ) ) ).

% lset_induct'
thf(fact_133_llist_Oset__cases,axiom,
    ! [A: $tType,E2: A,A3: coinductive_llist @ A] :
      ( ( member @ A @ E2 @ ( coinductive_lset @ A @ A3 ) )
     => ( ! [Z22: coinductive_llist @ A] :
            ( A3
           != ( coinductive_LCons @ A @ E2 @ Z22 ) )
       => ~ ! [Z1: A,Z22: coinductive_llist @ A] :
              ( ( A3
                = ( coinductive_LCons @ A @ Z1 @ Z22 ) )
             => ~ ( member @ A @ E2 @ ( coinductive_lset @ A @ Z22 ) ) ) ) ) ).

% llist.set_cases
thf(fact_134_llist_Oset__induct,axiom,
    ! [A: $tType,X: A,A3: coinductive_llist @ A,P: A > ( coinductive_llist @ A ) > $o] :
      ( ( member @ A @ X @ ( coinductive_lset @ A @ A3 ) )
     => ( ! [Z1: A,Z22: coinductive_llist @ A] : ( P @ Z1 @ ( coinductive_LCons @ A @ Z1 @ Z22 ) )
       => ( ! [Z1: A,Z22: coinductive_llist @ A,Xa2: A] :
              ( ( member @ A @ Xa2 @ ( coinductive_lset @ A @ Z22 ) )
             => ( ( P @ Xa2 @ Z22 )
               => ( P @ Xa2 @ ( coinductive_LCons @ A @ Z1 @ Z22 ) ) ) )
         => ( P @ X @ A3 ) ) ) ) ).

% llist.set_induct
thf(fact_135_llist__all2__reflI,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,P: A > A > $o] :
      ( ! [X4: A] :
          ( ( member @ A @ X4 @ ( coinductive_lset @ A @ Xs ) )
         => ( P @ X4 @ X4 ) )
     => ( coindu1486289336t_all2 @ A @ A @ P @ Xs @ Xs ) ) ).

% llist_all2_reflI
thf(fact_136_llist__all2__lsetD1,axiom,
    ! [A: $tType,B: $tType,P: A > B > $o,Xs: coinductive_llist @ A,Ys: coinductive_llist @ B,X: A] :
      ( ( coindu1486289336t_all2 @ A @ B @ P @ Xs @ Ys )
     => ( ( member @ A @ X @ ( coinductive_lset @ A @ Xs ) )
       => ? [X4: B] :
            ( ( member @ B @ X4 @ ( coinductive_lset @ B @ Ys ) )
            & ( P @ X @ X4 ) ) ) ) ).

% llist_all2_lsetD1
thf(fact_137_llist__all2__lsetD2,axiom,
    ! [A: $tType,B: $tType,P: A > B > $o,Xs: coinductive_llist @ A,Ys: coinductive_llist @ B,Y4: B] :
      ( ( coindu1486289336t_all2 @ A @ B @ P @ Xs @ Ys )
     => ( ( member @ B @ Y4 @ ( coinductive_lset @ B @ Ys ) )
       => ? [X4: A] :
            ( ( member @ A @ X4 @ ( coinductive_lset @ A @ Xs ) )
            & ( P @ X4 @ Y4 ) ) ) ) ).

% llist_all2_lsetD2
thf(fact_138_llist_Orel__cong,axiom,
    ! [A: $tType,B: $tType,X: coinductive_llist @ A,Ya: coinductive_llist @ A,Y4: coinductive_llist @ B,Xa: coinductive_llist @ B,R2: A > B > $o,Ra: A > B > $o] :
      ( ( X = Ya )
     => ( ( Y4 = Xa )
       => ( ! [Z3: A,Yb: B] :
              ( ( member @ A @ Z3 @ ( coinductive_lset @ A @ Ya ) )
             => ( ( member @ B @ Yb @ ( coinductive_lset @ B @ Xa ) )
               => ( ( R2 @ Z3 @ Yb )
                  = ( Ra @ Z3 @ Yb ) ) ) )
         => ( ( coindu1486289336t_all2 @ A @ B @ R2 @ X @ Y4 )
            = ( coindu1486289336t_all2 @ A @ B @ Ra @ Ya @ Xa ) ) ) ) ) ).

% llist.rel_cong
thf(fact_139_llist_Orel__mono__strong,axiom,
    ! [A: $tType,B: $tType,R2: A > B > $o,X: coinductive_llist @ A,Y4: coinductive_llist @ B,Ra: A > B > $o] :
      ( ( coindu1486289336t_all2 @ A @ B @ R2 @ X @ Y4 )
     => ( ! [Z3: A,Yb: B] :
            ( ( member @ A @ Z3 @ ( coinductive_lset @ A @ X ) )
           => ( ( member @ B @ Yb @ ( coinductive_lset @ B @ Y4 ) )
             => ( ( R2 @ Z3 @ Yb )
               => ( Ra @ Z3 @ Yb ) ) ) )
       => ( coindu1486289336t_all2 @ A @ B @ Ra @ X @ Y4 ) ) ) ).

% llist.rel_mono_strong
thf(fact_140_llist_Orel__refl__strong,axiom,
    ! [A: $tType,X: coinductive_llist @ A,Ra: A > A > $o] :
      ( ! [Z3: A] :
          ( ( member @ A @ Z3 @ ( coinductive_lset @ A @ X ) )
         => ( Ra @ Z3 @ Z3 ) )
     => ( coindu1486289336t_all2 @ A @ A @ Ra @ X @ X ) ) ).

% llist.rel_refl_strong
thf(fact_141_lfilter__cong,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,P: A > $o,Q: A > $o] :
      ( ( Xs = Ys )
     => ( ! [X4: A] :
            ( ( member @ A @ X4 @ ( coinductive_lset @ A @ Ys ) )
           => ( ( P @ X4 )
              = ( Q @ X4 ) ) )
       => ( ( coinductive_lfilter @ A @ P @ Xs )
          = ( coinductive_lfilter @ A @ Q @ Ys ) ) ) ) ).

% lfilter_cong
thf(fact_142_lfilter__id__conv,axiom,
    ! [A: $tType,P: A > $o,Xs: coinductive_llist @ A] :
      ( ( ( coinductive_lfilter @ A @ P @ Xs )
        = Xs )
      = ( ! [X3: A] :
            ( ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs ) )
           => ( P @ X3 ) ) ) ) ).

% lfilter_id_conv
thf(fact_143_lstrict__prefix__def,axiom,
    ! [A: $tType] :
      ( ( coindu1478340336prefix @ A )
      = ( ^ [Xs3: coinductive_llist @ A,Ys3: coinductive_llist @ A] :
            ( ( coinductive_lprefix @ A @ Xs3 @ Ys3 )
            & ( Xs3 != Ys3 ) ) ) ) ).

% lstrict_prefix_def
thf(fact_144_lstrict__prefix__lfinite1,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( coindu1478340336prefix @ A @ Xs @ Ys )
     => ( coinductive_lfinite @ A @ Xs ) ) ).

% lstrict_prefix_lfinite1
thf(fact_145_in__lset__lappend__iff,axiom,
    ! [A: $tType,X: A,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( member @ A @ X @ ( coinductive_lset @ A @ ( coinductive_lappend @ A @ Xs @ Ys ) ) )
      = ( ( member @ A @ X @ ( coinductive_lset @ A @ Xs ) )
        | ( ( coinductive_lfinite @ A @ Xs )
          & ( member @ A @ X @ ( coinductive_lset @ A @ Ys ) ) ) ) ) ).

% in_lset_lappend_iff
thf(fact_146_split__llist,axiom,
    ! [A: $tType,X: A,Xs: coinductive_llist @ A] :
      ( ( member @ A @ X @ ( coinductive_lset @ A @ Xs ) )
     => ? [Ys6: coinductive_llist @ A,Zs4: coinductive_llist @ A] :
          ( ( Xs
            = ( coinductive_lappend @ A @ Ys6 @ ( coinductive_LCons @ A @ X @ Zs4 ) ) )
          & ( coinductive_lfinite @ A @ Ys6 ) ) ) ).

% split_llist
thf(fact_147_split__llist__first,axiom,
    ! [A: $tType,X: A,Xs: coinductive_llist @ A] :
      ( ( member @ A @ X @ ( coinductive_lset @ A @ Xs ) )
     => ? [Ys6: coinductive_llist @ A,Zs4: coinductive_llist @ A] :
          ( ( Xs
            = ( coinductive_lappend @ A @ Ys6 @ ( coinductive_LCons @ A @ X @ Zs4 ) ) )
          & ( coinductive_lfinite @ A @ Ys6 )
          & ~ ( member @ A @ X @ ( coinductive_lset @ A @ Ys6 ) ) ) ) ).

% split_llist_first
thf(fact_148_reflp__mono,axiom,
    ! [A: $tType,R2: A > A > $o,Q: A > A > $o] :
      ( ( reflp @ A @ R2 )
     => ( ! [X4: A,Y3: A] :
            ( ( R2 @ X4 @ Y3 )
           => ( Q @ X4 @ Y3 ) )
       => ( reflp @ A @ Q ) ) ) ).

% reflp_mono
thf(fact_149_lset__lappend__lfinite,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( coinductive_lfinite @ A @ Xs )
     => ( ( coinductive_lset @ A @ ( coinductive_lappend @ A @ Xs @ Ys ) )
        = ( sup_sup @ ( set @ A ) @ ( coinductive_lset @ A @ Xs ) @ ( coinductive_lset @ A @ Ys ) ) ) ) ).

% lset_lappend_lfinite
thf(fact_150_The__case__prod,axiom,
    ! [B: $tType,A: $tType,P: A > B > $o] :
      ( ( the @ ( product_prod @ A @ B ) @ ( product_case_prod @ A @ B @ $o @ P ) )
      = ( the @ ( product_prod @ A @ B )
        @ ^ [Xy: product_prod @ A @ B] : ( P @ ( product_fst @ A @ B @ Xy ) @ ( product_snd @ A @ B @ Xy ) ) ) ) ).

% The_case_prod
thf(fact_151_llimit__induct,axiom,
    ! [A: $tType,P: ( coinductive_llist @ A ) > $o,Xs: coinductive_llist @ A] :
      ( ( P @ ( coinductive_LNil @ A ) )
     => ( ! [X4: A,Xs5: coinductive_llist @ A] :
            ( ( coinductive_lfinite @ A @ Xs5 )
           => ( ( P @ Xs5 )
             => ( P @ ( coinductive_LCons @ A @ X4 @ Xs5 ) ) ) )
       => ( ( ! [Ys5: coinductive_llist @ A] :
                ( ( coindu1478340336prefix @ A @ Ys5 @ Xs )
               => ( P @ Ys5 ) )
           => ( P @ Xs ) )
         => ( P @ Xs ) ) ) ) ).

% llimit_induct
thf(fact_152_prod_Oswap__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( product_swap @ A @ B )
      = ( ^ [P4: product_prod @ A @ B] : ( product_Pair @ B @ A @ ( product_snd @ A @ B @ P4 ) @ ( product_fst @ A @ B @ P4 ) ) ) ) ).

% prod.swap_def
thf(fact_153_old_Oprod_Oinject,axiom,
    ! [A: $tType,B: $tType,A3: A,B3: B,A7: A,B5: B] :
      ( ( ( product_Pair @ A @ B @ A3 @ B3 )
        = ( product_Pair @ A @ B @ A7 @ B5 ) )
      = ( ( A3 = A7 )
        & ( B3 = B5 ) ) ) ).

% old.prod.inject
thf(fact_154_prod_Oinject,axiom,
    ! [A: $tType,B: $tType,X12: A,X23: B,Y1: A,Y23: B] :
      ( ( ( product_Pair @ A @ B @ X12 @ X23 )
        = ( product_Pair @ A @ B @ Y1 @ Y23 ) )
      = ( ( X12 = Y1 )
        & ( X23 = Y23 ) ) ) ).

% prod.inject
thf(fact_155_mem__case__prodI2,axiom,
    ! [C: $tType,B: $tType,A: $tType,P3: product_prod @ A @ B,Z2: C,C3: A > B > ( set @ C )] :
      ( ! [A4: A,B4: B] :
          ( ( P3
            = ( product_Pair @ A @ B @ A4 @ B4 ) )
         => ( member @ C @ Z2 @ ( C3 @ A4 @ B4 ) ) )
     => ( member @ C @ Z2 @ ( product_case_prod @ A @ B @ ( set @ C ) @ C3 @ P3 ) ) ) ).

% mem_case_prodI2
thf(fact_156_mem__case__prodI,axiom,
    ! [A: $tType,B: $tType,C: $tType,Z2: A,C3: B > C > ( set @ A ),A3: B,B3: C] :
      ( ( member @ A @ Z2 @ ( C3 @ A3 @ B3 ) )
     => ( member @ A @ Z2 @ ( product_case_prod @ B @ C @ ( set @ A ) @ C3 @ ( product_Pair @ B @ C @ A3 @ B3 ) ) ) ) ).

% mem_case_prodI
thf(fact_157_lprefix__code_I1_J,axiom,
    ! [A: $tType,Ys: coinductive_llist @ A] : ( coinductive_lprefix @ A @ ( coinductive_LNil @ A ) @ Ys ) ).

% lprefix_code(1)
thf(fact_158_lfinite__code_I1_J,axiom,
    ! [A: $tType] : ( coinductive_lfinite @ A @ ( coinductive_LNil @ A ) ) ).

% lfinite_code(1)
thf(fact_159_llist__all2__LNil2,axiom,
    ! [B: $tType,A: $tType,P: A > B > $o,Xs: coinductive_llist @ A] :
      ( ( coindu1486289336t_all2 @ A @ B @ P @ Xs @ ( coinductive_LNil @ B ) )
      = ( Xs
        = ( coinductive_LNil @ A ) ) ) ).

% llist_all2_LNil2
thf(fact_160_llist__all2__LNil1,axiom,
    ! [A: $tType,B: $tType,P: A > B > $o,Xs: coinductive_llist @ B] :
      ( ( coindu1486289336t_all2 @ A @ B @ P @ ( coinductive_LNil @ A ) @ Xs )
      = ( Xs
        = ( coinductive_LNil @ B ) ) ) ).

% llist_all2_LNil1
thf(fact_161_lappend__LNil2,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A] :
      ( ( coinductive_lappend @ A @ Xs @ ( coinductive_LNil @ A ) )
      = Xs ) ).

% lappend_LNil2
thf(fact_162_lappend__code_I1_J,axiom,
    ! [A: $tType,Ys: coinductive_llist @ A] :
      ( ( coinductive_lappend @ A @ ( coinductive_LNil @ A ) @ Ys )
      = Ys ) ).

% lappend_code(1)
thf(fact_163_apfst__conv,axiom,
    ! [C: $tType,A: $tType,B: $tType,F: C > A,X: C,Y4: B] :
      ( ( product_apfst @ C @ A @ B @ F @ ( product_Pair @ C @ B @ X @ Y4 ) )
      = ( product_Pair @ A @ B @ ( F @ X ) @ Y4 ) ) ).

% apfst_conv
thf(fact_164_lfilter__LNil,axiom,
    ! [A: $tType,P: A > $o] :
      ( ( coinductive_lfilter @ A @ P @ ( coinductive_LNil @ A ) )
      = ( coinductive_LNil @ A ) ) ).

% lfilter_LNil
thf(fact_165_swap__simp,axiom,
    ! [A: $tType,B: $tType,X: B,Y4: A] :
      ( ( product_swap @ B @ A @ ( product_Pair @ B @ A @ X @ Y4 ) )
      = ( product_Pair @ A @ B @ Y4 @ X ) ) ).

% swap_simp
thf(fact_166_case__prod__conv,axiom,
    ! [B: $tType,A: $tType,C: $tType,F: B > C > A,A3: B,B3: C] :
      ( ( product_case_prod @ B @ C @ A @ F @ ( product_Pair @ B @ C @ A3 @ B3 ) )
      = ( F @ A3 @ B3 ) ) ).

% case_prod_conv
thf(fact_167_lstrict__prefix__code_I1_J,axiom,
    ! [A: $tType] :
      ~ ( coindu1478340336prefix @ A @ ( coinductive_LNil @ A ) @ ( coinductive_LNil @ A ) ) ).

% lstrict_prefix_code(1)
thf(fact_168_case__prodI2,axiom,
    ! [B: $tType,A: $tType,P3: product_prod @ A @ B,C3: A > B > $o] :
      ( ! [A4: A,B4: B] :
          ( ( P3
            = ( product_Pair @ A @ B @ A4 @ B4 ) )
         => ( C3 @ A4 @ B4 ) )
     => ( product_case_prod @ A @ B @ $o @ C3 @ P3 ) ) ).

% case_prodI2
thf(fact_169_case__prodI,axiom,
    ! [A: $tType,B: $tType,F: A > B > $o,A3: A,B3: B] :
      ( ( F @ A3 @ B3 )
     => ( product_case_prod @ A @ B @ $o @ F @ ( product_Pair @ A @ B @ A3 @ B3 ) ) ) ).

% case_prodI
thf(fact_170_lappendt__LNil,axiom,
    ! [B: $tType,A: $tType,Tr: tLList446370796tllist @ A @ B] :
      ( ( tLList98099029ppendt @ A @ B @ ( coinductive_LNil @ A ) @ Tr )
      = Tr ) ).

% lappendt_LNil
thf(fact_171_case__prodI2_H,axiom,
    ! [A: $tType,B: $tType,C: $tType,P3: product_prod @ A @ B,C3: A > B > C > $o,X: C] :
      ( ! [A4: A,B4: B] :
          ( ( ( product_Pair @ A @ B @ A4 @ B4 )
            = P3 )
         => ( C3 @ A4 @ B4 @ X ) )
     => ( product_case_prod @ A @ B @ ( C > $o ) @ C3 @ P3 @ X ) ) ).

% case_prodI2'
thf(fact_172_lfitler__K__False,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A] :
      ( ( coinductive_lfilter @ A
        @ ^ [Uu: A] : $false
        @ Xs )
      = ( coinductive_LNil @ A ) ) ).

% lfitler_K_False
thf(fact_173_prod_Ocollapse,axiom,
    ! [B: $tType,A: $tType,Prod: product_prod @ A @ B] :
      ( ( product_Pair @ A @ B @ ( product_fst @ A @ B @ Prod ) @ ( product_snd @ A @ B @ Prod ) )
      = Prod ) ).

% prod.collapse
thf(fact_174_lprefix__LNil,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A] :
      ( ( coinductive_lprefix @ A @ Xs @ ( coinductive_LNil @ A ) )
      = ( coinductive_lnull @ A @ Xs ) ) ).

% lprefix_LNil
thf(fact_175_diverge__lfilter__LNil,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,P: A > $o] :
      ( ! [X4: A] :
          ( ( member @ A @ X4 @ ( coinductive_lset @ A @ Xs ) )
         => ~ ( P @ X4 ) )
     => ( ( coinductive_lfilter @ A @ P @ Xs )
        = ( coinductive_LNil @ A ) ) ) ).

% diverge_lfilter_LNil
thf(fact_176_llast__singleton,axiom,
    ! [A: $tType,X: A] :
      ( ( coinductive_llast @ A @ ( coinductive_LCons @ A @ X @ ( coinductive_LNil @ A ) ) )
      = X ) ).

% llast_singleton
thf(fact_177_lstrict__prefix__code_I3_J,axiom,
    ! [B: $tType,X: B,Xs: coinductive_llist @ B] :
      ~ ( coindu1478340336prefix @ B @ ( coinductive_LCons @ B @ X @ Xs ) @ ( coinductive_LNil @ B ) ) ).

% lstrict_prefix_code(3)
thf(fact_178_lstrict__prefix__code_I2_J,axiom,
    ! [B: $tType,Y4: B,Ys: coinductive_llist @ B] : ( coindu1478340336prefix @ B @ ( coinductive_LNil @ B ) @ ( coinductive_LCons @ B @ Y4 @ Ys ) ) ).

% lstrict_prefix_code(2)
thf(fact_179_The__split__eq,axiom,
    ! [A: $tType,B: $tType,X: A,Y4: B] :
      ( ( the @ ( product_prod @ A @ B )
        @ ( product_case_prod @ A @ B @ $o
          @ ^ [X8: A,Y5: B] :
              ( ( X = X8 )
              & ( Y4 = Y5 ) ) ) )
      = ( product_Pair @ A @ B @ X @ Y4 ) ) ).

% The_split_eq
thf(fact_180_pred__equals__eq2,axiom,
    ! [B: $tType,A: $tType,R2: set @ ( product_prod @ A @ B ),S: set @ ( product_prod @ A @ B )] :
      ( ( ( ^ [X3: A,Y: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X3 @ Y ) @ R2 ) )
        = ( ^ [X3: A,Y: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X3 @ Y ) @ S ) ) )
      = ( R2 = S ) ) ).

% pred_equals_eq2
thf(fact_181_old_Oprod_Ocase,axiom,
    ! [A: $tType,C: $tType,B: $tType,F: A > B > C,X12: A,X23: B] :
      ( ( product_case_prod @ A @ B @ C @ F @ ( product_Pair @ A @ B @ X12 @ X23 ) )
      = ( F @ X12 @ X23 ) ) ).

% old.prod.case
thf(fact_182_LNil__lprefix,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A] : ( coinductive_lprefix @ A @ ( coinductive_LNil @ A ) @ Xs ) ).

% LNil_lprefix
thf(fact_183_llist_Odistinct_I1_J,axiom,
    ! [A: $tType,X21: A,X22: coinductive_llist @ A] :
      ( ( coinductive_LNil @ A )
     != ( coinductive_LCons @ A @ X21 @ X22 ) ) ).

% llist.distinct(1)
thf(fact_184_llist_Oexhaust,axiom,
    ! [A: $tType,Y4: coinductive_llist @ A] :
      ( ( Y4
       != ( coinductive_LNil @ A ) )
     => ~ ! [X212: A,X222: coinductive_llist @ A] :
            ( Y4
           != ( coinductive_LCons @ A @ X212 @ X222 ) ) ) ).

% llist.exhaust
thf(fact_185_neq__LNil__conv,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A] :
      ( ( Xs
       != ( coinductive_LNil @ A ) )
      = ( ? [X3: A,Xs4: coinductive_llist @ A] :
            ( Xs
            = ( coinductive_LCons @ A @ X3 @ Xs4 ) ) ) ) ).

% neq_LNil_conv
thf(fact_186_split__fst,axiom,
    ! [B: $tType,A: $tType,R2: A > $o,P3: product_prod @ A @ B] :
      ( ( R2 @ ( product_fst @ A @ B @ P3 ) )
      = ( ! [X3: A,Y: B] :
            ( ( P3
              = ( product_Pair @ A @ B @ X3 @ Y ) )
           => ( R2 @ X3 ) ) ) ) ).

% split_fst
thf(fact_187_split__fst__asm,axiom,
    ! [B: $tType,A: $tType,R2: A > $o,P3: product_prod @ A @ B] :
      ( ( R2 @ ( product_fst @ A @ B @ P3 ) )
      = ( ~ ? [X3: A,Y: B] :
              ( ( P3
                = ( product_Pair @ A @ B @ X3 @ Y ) )
              & ~ ( R2 @ X3 ) ) ) ) ).

% split_fst_asm
thf(fact_188_fst__eqD,axiom,
    ! [B: $tType,A: $tType,X: A,Y4: B,A3: A] :
      ( ( ( product_fst @ A @ B @ ( product_Pair @ A @ B @ X @ Y4 ) )
        = A3 )
     => ( X = A3 ) ) ).

% fst_eqD
thf(fact_189_fst__conv,axiom,
    ! [B: $tType,A: $tType,X12: A,X23: B] :
      ( ( product_fst @ A @ B @ ( product_Pair @ A @ B @ X12 @ X23 ) )
      = X12 ) ).

% fst_conv
thf(fact_190_llist_Odisc_I1_J,axiom,
    ! [A: $tType] : ( coinductive_lnull @ A @ ( coinductive_LNil @ A ) ) ).

% llist.disc(1)
thf(fact_191_llist_OdiscI_I1_J,axiom,
    ! [A: $tType,Llist: coinductive_llist @ A] :
      ( ( Llist
        = ( coinductive_LNil @ A ) )
     => ( coinductive_lnull @ A @ Llist ) ) ).

% llist.discI(1)
thf(fact_192_llist_Ocollapse_I1_J,axiom,
    ! [A: $tType,Llist: coinductive_llist @ A] :
      ( ( coinductive_lnull @ A @ Llist )
     => ( Llist
        = ( coinductive_LNil @ A ) ) ) ).

% llist.collapse(1)
thf(fact_193_lnull__def,axiom,
    ! [A: $tType] :
      ( ( coinductive_lnull @ A )
      = ( ^ [Llist2: coinductive_llist @ A] :
            ( Llist2
            = ( coinductive_LNil @ A ) ) ) ) ).

% lnull_def
thf(fact_194_snd__eqD,axiom,
    ! [B: $tType,A: $tType,X: B,Y4: A,A3: A] :
      ( ( ( product_snd @ B @ A @ ( product_Pair @ B @ A @ X @ Y4 ) )
        = A3 )
     => ( Y4 = A3 ) ) ).

% snd_eqD
thf(fact_195_snd__conv,axiom,
    ! [Aa: $tType,A: $tType,X12: Aa,X23: A] :
      ( ( product_snd @ Aa @ A @ ( product_Pair @ Aa @ A @ X12 @ X23 ) )
      = X23 ) ).

% snd_conv
thf(fact_196_lfinite__LNil,axiom,
    ! [A: $tType] : ( coinductive_lfinite @ A @ ( coinductive_LNil @ A ) ) ).

% lfinite_LNil
thf(fact_197_LNil__transfer,axiom,
    ! [A: $tType,B: $tType,P: A > B > $o] : ( coindu1486289336t_all2 @ A @ B @ P @ ( coinductive_LNil @ A ) @ ( coinductive_LNil @ B ) ) ).

% LNil_transfer
thf(fact_198_llist__all2__LNil__LNil,axiom,
    ! [A: $tType,B: $tType,R2: A > B > $o] : ( coindu1486289336t_all2 @ A @ B @ R2 @ ( coinductive_LNil @ A ) @ ( coinductive_LNil @ B ) ) ).

% llist_all2_LNil_LNil
thf(fact_199_lappend__LNil__LNil,axiom,
    ! [A: $tType] :
      ( ( coinductive_lappend @ A @ ( coinductive_LNil @ A ) @ ( coinductive_LNil @ A ) )
      = ( coinductive_LNil @ A ) ) ).

% lappend_LNil_LNil
thf(fact_200_LNil__eq__lappend__iff,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( ( coinductive_LNil @ A )
        = ( coinductive_lappend @ A @ Xs @ Ys ) )
      = ( ( Xs
          = ( coinductive_LNil @ A ) )
        & ( Ys
          = ( coinductive_LNil @ A ) ) ) ) ).

% LNil_eq_lappend_iff
thf(fact_201_lappend__eq__LNil__iff,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( ( coinductive_lappend @ A @ Xs @ Ys )
        = ( coinductive_LNil @ A ) )
      = ( ( Xs
          = ( coinductive_LNil @ A ) )
        & ( Ys
          = ( coinductive_LNil @ A ) ) ) ) ).

% lappend_eq_LNil_iff
thf(fact_202_old_Oprod_Oinducts,axiom,
    ! [B: $tType,A: $tType,P: ( product_prod @ A @ B ) > $o,Prod: product_prod @ A @ B] :
      ( ! [A4: A,B4: B] : ( P @ ( product_Pair @ A @ B @ A4 @ B4 ) )
     => ( P @ Prod ) ) ).

% old.prod.inducts
thf(fact_203_old_Oprod_Oexhaust,axiom,
    ! [A: $tType,B: $tType,Y4: product_prod @ A @ B] :
      ~ ! [A4: A,B4: B] :
          ( Y4
         != ( product_Pair @ A @ B @ A4 @ B4 ) ) ).

% old.prod.exhaust
thf(fact_204_prod__induct7,axiom,
    ! [G3: $tType,F3: $tType,E: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F3 @ G3 ) ) ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F3 @ G3 ) ) ) ) )] :
      ( ! [A4: A,B4: B,C4: C,D2: D,E3: E,F4: F3,G4: G3] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F3 @ G3 ) ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F3 @ G3 ) ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F3 @ G3 ) ) ) @ C4 @ ( product_Pair @ D @ ( product_prod @ E @ ( product_prod @ F3 @ G3 ) ) @ D2 @ ( product_Pair @ E @ ( product_prod @ F3 @ G3 ) @ E3 @ ( product_Pair @ F3 @ G3 @ F4 @ G4 ) ) ) ) ) ) )
     => ( P @ X ) ) ).

% prod_induct7
thf(fact_205_prod__induct6,axiom,
    ! [F3: $tType,E: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F3 ) ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F3 ) ) ) )] :
      ( ! [A4: A,B4: B,C4: C,D2: D,E3: E,F4: F3] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F3 ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F3 ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ F3 ) ) @ C4 @ ( product_Pair @ D @ ( product_prod @ E @ F3 ) @ D2 @ ( product_Pair @ E @ F3 @ E3 @ F4 ) ) ) ) ) )
     => ( P @ X ) ) ).

% prod_induct6
thf(fact_206_prod__induct5,axiom,
    ! [E: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) )] :
      ( ! [A4: A,B4: B,C4: C,D2: D,E3: E] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ E ) @ C4 @ ( product_Pair @ D @ E @ D2 @ E3 ) ) ) ) )
     => ( P @ X ) ) ).

% prod_induct5
thf(fact_207_prod__induct4,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) )] :
      ( ! [A4: A,B4: B,C4: C,D2: D] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ D ) @ B4 @ ( product_Pair @ C @ D @ C4 @ D2 ) ) ) )
     => ( P @ X ) ) ).

% prod_induct4
thf(fact_208_prod__induct3,axiom,
    ! [C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ C ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ C )] :
      ( ! [A4: A,B4: B,C4: C] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ C ) @ A4 @ ( product_Pair @ B @ C @ B4 @ C4 ) ) )
     => ( P @ X ) ) ).

% prod_induct3
thf(fact_209_prod__cases7,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,F3: $tType,G3: $tType,Y4: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F3 @ G3 ) ) ) ) )] :
      ~ ! [A4: A,B4: B,C4: C,D2: D,E3: E,F4: F3,G4: G3] :
          ( Y4
         != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F3 @ G3 ) ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F3 @ G3 ) ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F3 @ G3 ) ) ) @ C4 @ ( product_Pair @ D @ ( product_prod @ E @ ( product_prod @ F3 @ G3 ) ) @ D2 @ ( product_Pair @ E @ ( product_prod @ F3 @ G3 ) @ E3 @ ( product_Pair @ F3 @ G3 @ F4 @ G4 ) ) ) ) ) ) ) ).

% prod_cases7
thf(fact_210_prod__cases6,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,F3: $tType,Y4: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F3 ) ) ) )] :
      ~ ! [A4: A,B4: B,C4: C,D2: D,E3: E,F4: F3] :
          ( Y4
         != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F3 ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F3 ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ F3 ) ) @ C4 @ ( product_Pair @ D @ ( product_prod @ E @ F3 ) @ D2 @ ( product_Pair @ E @ F3 @ E3 @ F4 ) ) ) ) ) ) ).

% prod_cases6
thf(fact_211_prod__cases5,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,Y4: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) )] :
      ~ ! [A4: A,B4: B,C4: C,D2: D,E3: E] :
          ( Y4
         != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ E ) @ C4 @ ( product_Pair @ D @ E @ D2 @ E3 ) ) ) ) ) ).

% prod_cases5
thf(fact_212_prod__cases4,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,Y4: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) )] :
      ~ ! [A4: A,B4: B,C4: C,D2: D] :
          ( Y4
         != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ D ) @ B4 @ ( product_Pair @ C @ D @ C4 @ D2 ) ) ) ) ).

% prod_cases4
thf(fact_213_prod__cases3,axiom,
    ! [A: $tType,B: $tType,C: $tType,Y4: product_prod @ A @ ( product_prod @ B @ C )] :
      ~ ! [A4: A,B4: B,C4: C] :
          ( Y4
         != ( product_Pair @ A @ ( product_prod @ B @ C ) @ A4 @ ( product_Pair @ B @ C @ B4 @ C4 ) ) ) ).

% prod_cases3
thf(fact_214_Pair__inject,axiom,
    ! [A: $tType,B: $tType,A3: A,B3: B,A7: A,B5: B] :
      ( ( ( product_Pair @ A @ B @ A3 @ B3 )
        = ( product_Pair @ A @ B @ A7 @ B5 ) )
     => ~ ( ( A3 = A7 )
         => ( B3 != B5 ) ) ) ).

% Pair_inject
thf(fact_215_prod__cases,axiom,
    ! [B: $tType,A: $tType,P: ( product_prod @ A @ B ) > $o,P3: product_prod @ A @ B] :
      ( ! [A4: A,B4: B] : ( P @ ( product_Pair @ A @ B @ A4 @ B4 ) )
     => ( P @ P3 ) ) ).

% prod_cases
thf(fact_216_surj__pair,axiom,
    ! [A: $tType,B: $tType,P3: product_prod @ A @ B] :
    ? [X4: A,Y3: B] :
      ( P3
      = ( product_Pair @ A @ B @ X4 @ Y3 ) ) ).

% surj_pair
thf(fact_217_case__prod__Pair__iden,axiom,
    ! [B: $tType,A: $tType,P3: product_prod @ A @ B] :
      ( ( product_case_prod @ A @ B @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B ) @ P3 )
      = P3 ) ).

% case_prod_Pair_iden
thf(fact_218_mem__case__prodE,axiom,
    ! [B: $tType,A: $tType,C: $tType,Z2: A,C3: B > C > ( set @ A ),P3: product_prod @ B @ C] :
      ( ( member @ A @ Z2 @ ( product_case_prod @ B @ C @ ( set @ A ) @ C3 @ P3 ) )
     => ~ ! [X4: B,Y3: C] :
            ( ( P3
              = ( product_Pair @ B @ C @ X4 @ Y3 ) )
           => ~ ( member @ A @ Z2 @ ( C3 @ X4 @ Y3 ) ) ) ) ).

% mem_case_prodE
thf(fact_219_Pair__scomp,axiom,
    ! [A: $tType,B: $tType,C: $tType,X: C,F: C > A > B] :
      ( ( product_scomp @ A @ C @ A @ B @ ( product_Pair @ C @ A @ X ) @ F )
      = ( F @ X ) ) ).

% Pair_scomp
thf(fact_220_cond__case__prod__eta,axiom,
    ! [C: $tType,B: $tType,A: $tType,F: A > B > C,G: ( product_prod @ A @ B ) > C] :
      ( ! [X4: A,Y3: B] :
          ( ( F @ X4 @ Y3 )
          = ( G @ ( product_Pair @ A @ B @ X4 @ Y3 ) ) )
     => ( ( product_case_prod @ A @ B @ C @ F )
        = G ) ) ).

% cond_case_prod_eta
thf(fact_221_case__prod__eta,axiom,
    ! [C: $tType,B: $tType,A: $tType,F: ( product_prod @ A @ B ) > C] :
      ( ( product_case_prod @ A @ B @ C
        @ ^ [X3: A,Y: B] : ( F @ ( product_Pair @ A @ B @ X3 @ Y ) ) )
      = F ) ).

% case_prod_eta
thf(fact_222_case__prodE2,axiom,
    ! [B: $tType,A: $tType,C: $tType,Q: A > $o,P: B > C > A,Z2: product_prod @ B @ C] :
      ( ( Q @ ( product_case_prod @ B @ C @ A @ P @ Z2 ) )
     => ~ ! [X4: B,Y3: C] :
            ( ( Z2
              = ( product_Pair @ B @ C @ X4 @ Y3 ) )
           => ~ ( Q @ ( P @ X4 @ Y3 ) ) ) ) ).

% case_prodE2
thf(fact_223_scomp__Pair,axiom,
    ! [C: $tType,B: $tType,A: $tType,X: A > ( product_prod @ B @ C )] :
      ( ( product_scomp @ A @ B @ C @ ( product_prod @ B @ C ) @ X @ ( product_Pair @ B @ C ) )
      = X ) ).

% scomp_Pair
thf(fact_224_case__prodE,axiom,
    ! [A: $tType,B: $tType,C3: A > B > $o,P3: product_prod @ A @ B] :
      ( ( product_case_prod @ A @ B @ $o @ C3 @ P3 )
     => ~ ! [X4: A,Y3: B] :
            ( ( P3
              = ( product_Pair @ A @ B @ X4 @ Y3 ) )
           => ~ ( C3 @ X4 @ Y3 ) ) ) ).

% case_prodE
thf(fact_225_case__prodD,axiom,
    ! [A: $tType,B: $tType,F: A > B > $o,A3: A,B3: B] :
      ( ( product_case_prod @ A @ B @ $o @ F @ ( product_Pair @ A @ B @ A3 @ B3 ) )
     => ( F @ A3 @ B3 ) ) ).

% case_prodD
thf(fact_226_Coinductive__List_Ofinite__lprefix__nitpick__simps_I1_J,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A] :
      ( ( coindu328551480prefix @ A @ Xs @ ( coinductive_LNil @ A ) )
      = ( Xs
        = ( coinductive_LNil @ A ) ) ) ).

% Coinductive_List.finite_lprefix_nitpick_simps(1)
thf(fact_227_Coinductive__List_Ofinite__lprefix__nitpick__simps_I2_J,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A] : ( coindu328551480prefix @ A @ ( coinductive_LNil @ A ) @ Xs ) ).

% Coinductive_List.finite_lprefix_nitpick_simps(2)
thf(fact_228_case__prodE_H,axiom,
    ! [B: $tType,A: $tType,C: $tType,C3: A > B > C > $o,P3: product_prod @ A @ B,Z2: C] :
      ( ( product_case_prod @ A @ B @ ( C > $o ) @ C3 @ P3 @ Z2 )
     => ~ ! [X4: A,Y3: B] :
            ( ( P3
              = ( product_Pair @ A @ B @ X4 @ Y3 ) )
           => ~ ( C3 @ X4 @ Y3 @ Z2 ) ) ) ).

% case_prodE'
thf(fact_229_case__prodD_H,axiom,
    ! [B: $tType,A: $tType,C: $tType,R2: A > B > C > $o,A3: A,B3: B,C3: C] :
      ( ( product_case_prod @ A @ B @ ( C > $o ) @ R2 @ ( product_Pair @ A @ B @ A3 @ B3 ) @ C3 )
     => ( R2 @ A3 @ B3 @ C3 ) ) ).

% case_prodD'
thf(fact_230_lprefix__code_I2_J,axiom,
    ! [A: $tType,X: A,Xs: coinductive_llist @ A] :
      ~ ( coinductive_lprefix @ A @ ( coinductive_LCons @ A @ X @ Xs ) @ ( coinductive_LNil @ A ) ) ).

% lprefix_code(2)
thf(fact_231_lprefix_Ocases,axiom,
    ! [A: $tType,A1: coinductive_llist @ A,A22: coinductive_llist @ A] :
      ( ( coinductive_lprefix @ A @ A1 @ A22 )
     => ( ( ( A1
            = ( coinductive_LNil @ A ) )
         => ! [Xs5: coinductive_llist @ A] : A22 != Xs5 )
       => ~ ! [Xs5: coinductive_llist @ A,Ys6: coinductive_llist @ A,X4: A] :
              ( ( A1
                = ( coinductive_LCons @ A @ X4 @ Xs5 ) )
             => ( ( A22
                  = ( coinductive_LCons @ A @ X4 @ Ys6 ) )
               => ~ ( coinductive_lprefix @ A @ Xs5 @ Ys6 ) ) ) ) ) ).

% lprefix.cases
thf(fact_232_lprefix_Osimps,axiom,
    ! [A: $tType] :
      ( ( coinductive_lprefix @ A )
      = ( ^ [A12: coinductive_llist @ A,A23: coinductive_llist @ A] :
            ( ? [Xs3: coinductive_llist @ A] :
                ( ( A12
                  = ( coinductive_LNil @ A ) )
                & ( A23 = Xs3 ) )
            | ? [Xs3: coinductive_llist @ A,Ys3: coinductive_llist @ A,X3: A] :
                ( ( A12
                  = ( coinductive_LCons @ A @ X3 @ Xs3 ) )
                & ( A23
                  = ( coinductive_LCons @ A @ X3 @ Ys3 ) )
                & ( coinductive_lprefix @ A @ Xs3 @ Ys3 ) ) ) ) ) ).

% lprefix.simps
thf(fact_233_lprefix_Ocoinduct,axiom,
    ! [A: $tType,X9: ( coinductive_llist @ A ) > ( coinductive_llist @ A ) > $o,X: coinductive_llist @ A,Xa: coinductive_llist @ A] :
      ( ( X9 @ X @ Xa )
     => ( ! [X4: coinductive_llist @ A,Xa2: coinductive_llist @ A] :
            ( ( X9 @ X4 @ Xa2 )
           => ( ? [Xs7: coinductive_llist @ A] :
                  ( ( X4
                    = ( coinductive_LNil @ A ) )
                  & ( Xa2 = Xs7 ) )
              | ? [Xs7: coinductive_llist @ A,Ys5: coinductive_llist @ A,Xb: A] :
                  ( ( X4
                    = ( coinductive_LCons @ A @ Xb @ Xs7 ) )
                  & ( Xa2
                    = ( coinductive_LCons @ A @ Xb @ Ys5 ) )
                  & ( ( X9 @ Xs7 @ Ys5 )
                    | ( coinductive_lprefix @ A @ Xs7 @ Ys5 ) ) ) ) )
       => ( coinductive_lprefix @ A @ X @ Xa ) ) ) ).

% lprefix.coinduct
thf(fact_234_lprefix__LCons__conv,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Y4: A,Ys: coinductive_llist @ A] :
      ( ( coinductive_lprefix @ A @ Xs @ ( coinductive_LCons @ A @ Y4 @ Ys ) )
      = ( ( Xs
          = ( coinductive_LNil @ A ) )
        | ? [Xs4: coinductive_llist @ A] :
            ( ( Xs
              = ( coinductive_LCons @ A @ Y4 @ Xs4 ) )
            & ( coinductive_lprefix @ A @ Xs4 @ Ys ) ) ) ) ).

% lprefix_LCons_conv
thf(fact_235_conjI__realizer,axiom,
    ! [A: $tType,B: $tType,P: A > $o,P3: A,Q: B > $o,Q2: B] :
      ( ( P @ P3 )
     => ( ( Q @ Q2 )
       => ( ( P @ ( product_fst @ A @ B @ ( product_Pair @ A @ B @ P3 @ Q2 ) ) )
          & ( Q @ ( product_snd @ A @ B @ ( product_Pair @ A @ B @ P3 @ Q2 ) ) ) ) ) ) ).

% conjI_realizer
thf(fact_236_exI__realizer,axiom,
    ! [B: $tType,A: $tType,P: A > B > $o,Y4: A,X: B] :
      ( ( P @ Y4 @ X )
     => ( P @ ( product_snd @ B @ A @ ( product_Pair @ B @ A @ X @ Y4 ) ) @ ( product_fst @ B @ A @ ( product_Pair @ B @ A @ X @ Y4 ) ) ) ) ).

% exI_realizer
thf(fact_237_prod_Oexhaust__sel,axiom,
    ! [B: $tType,A: $tType,Prod: product_prod @ A @ B] :
      ( Prod
      = ( product_Pair @ A @ B @ ( product_fst @ A @ B @ Prod ) @ ( product_snd @ A @ B @ Prod ) ) ) ).

% prod.exhaust_sel
thf(fact_238_surjective__pairing,axiom,
    ! [B: $tType,A: $tType,T3: product_prod @ A @ B] :
      ( T3
      = ( product_Pair @ A @ B @ ( product_fst @ A @ B @ T3 ) @ ( product_snd @ A @ B @ T3 ) ) ) ).

% surjective_pairing
thf(fact_239_lfinite_Oinducts,axiom,
    ! [A: $tType,X: coinductive_llist @ A,P: ( coinductive_llist @ A ) > $o] :
      ( ( coinductive_lfinite @ A @ X )
     => ( ( P @ ( coinductive_LNil @ A ) )
       => ( ! [Xs5: coinductive_llist @ A,X4: A] :
              ( ( coinductive_lfinite @ A @ Xs5 )
             => ( ( P @ Xs5 )
               => ( P @ ( coinductive_LCons @ A @ X4 @ Xs5 ) ) ) )
         => ( P @ X ) ) ) ) ).

% lfinite.inducts
thf(fact_240_lfinite_Osimps,axiom,
    ! [A: $tType] :
      ( ( coinductive_lfinite @ A )
      = ( ^ [A2: coinductive_llist @ A] :
            ( ( A2
              = ( coinductive_LNil @ A ) )
            | ? [Xs3: coinductive_llist @ A,X3: A] :
                ( ( A2
                  = ( coinductive_LCons @ A @ X3 @ Xs3 ) )
                & ( coinductive_lfinite @ A @ Xs3 ) ) ) ) ) ).

% lfinite.simps
thf(fact_241_lfinite_Ocases,axiom,
    ! [A: $tType,A3: coinductive_llist @ A] :
      ( ( coinductive_lfinite @ A @ A3 )
     => ( ( A3
         != ( coinductive_LNil @ A ) )
       => ~ ! [Xs5: coinductive_llist @ A] :
              ( ? [X4: A] :
                  ( A3
                  = ( coinductive_LCons @ A @ X4 @ Xs5 ) )
             => ~ ( coinductive_lfinite @ A @ Xs5 ) ) ) ) ).

% lfinite.cases
thf(fact_242_llist__all2__LNil__LCons,axiom,
    ! [A: $tType,B: $tType,R2: A > B > $o,Y21: B,Y22: coinductive_llist @ B] :
      ~ ( coindu1486289336t_all2 @ A @ B @ R2 @ ( coinductive_LNil @ A ) @ ( coinductive_LCons @ B @ Y21 @ Y22 ) ) ).

% llist_all2_LNil_LCons
thf(fact_243_llist__all2__LCons__LNil,axiom,
    ! [A: $tType,B: $tType,R2: A > B > $o,Y21: A,Y22: coinductive_llist @ A] :
      ~ ( coindu1486289336t_all2 @ A @ B @ R2 @ ( coinductive_LCons @ A @ Y21 @ Y22 ) @ ( coinductive_LNil @ B ) ) ).

% llist_all2_LCons_LNil
thf(fact_244_llist__all2__cases,axiom,
    ! [A: $tType,B: $tType,P: A > B > $o,Xs: coinductive_llist @ A,Ys: coinductive_llist @ B] :
      ( ( coindu1486289336t_all2 @ A @ B @ P @ Xs @ Ys )
     => ( ( ( Xs
            = ( coinductive_LNil @ A ) )
         => ( Ys
           != ( coinductive_LNil @ B ) ) )
       => ~ ! [X4: A,Xs6: coinductive_llist @ A] :
              ( ( Xs
                = ( coinductive_LCons @ A @ X4 @ Xs6 ) )
             => ! [Y3: B,Ys7: coinductive_llist @ B] :
                  ( ( Ys
                    = ( coinductive_LCons @ B @ Y3 @ Ys7 ) )
                 => ( ( P @ X4 @ Y3 )
                   => ~ ( coindu1486289336t_all2 @ A @ B @ P @ Xs6 @ Ys7 ) ) ) ) ) ) ).

% llist_all2_cases
thf(fact_245_llist_Orel__cases,axiom,
    ! [A: $tType,B: $tType,R2: A > B > $o,A3: coinductive_llist @ A,B3: coinductive_llist @ B] :
      ( ( coindu1486289336t_all2 @ A @ B @ R2 @ A3 @ B3 )
     => ( ( ( A3
            = ( coinductive_LNil @ A ) )
         => ( B3
           != ( coinductive_LNil @ B ) ) )
       => ~ ! [X13: A,X24: coinductive_llist @ A] :
              ( ( A3
                = ( coinductive_LCons @ A @ X13 @ X24 ) )
             => ! [Y12: B,Y24: coinductive_llist @ B] :
                  ( ( B3
                    = ( coinductive_LCons @ B @ Y12 @ Y24 ) )
                 => ( ( R2 @ X13 @ Y12 )
                   => ~ ( coindu1486289336t_all2 @ A @ B @ R2 @ X24 @ Y24 ) ) ) ) ) ) ).

% llist.rel_cases
thf(fact_246_lappend__snocL1__conv__LCons2,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Y4: A,Ys: coinductive_llist @ A] :
      ( ( coinductive_lappend @ A @ ( coinductive_lappend @ A @ Xs @ ( coinductive_LCons @ A @ Y4 @ ( coinductive_LNil @ A ) ) ) @ Ys )
      = ( coinductive_lappend @ A @ Xs @ ( coinductive_LCons @ A @ Y4 @ Ys ) ) ) ).

% lappend_snocL1_conv_LCons2
thf(fact_247_lappend_Octr_I1_J,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( coinductive_lnull @ A @ Xs )
     => ( ( coinductive_lnull @ A @ Ys )
       => ( ( coinductive_lappend @ A @ Xs @ Ys )
          = ( coinductive_LNil @ A ) ) ) ) ).

% lappend.ctr(1)
thf(fact_248_internal__case__prod__conv,axiom,
    ! [B: $tType,A: $tType,C: $tType,C3: B > C > A,A3: B,B3: C] :
      ( ( produc2004651681e_prod @ B @ C @ A @ C3 @ ( product_Pair @ B @ C @ A3 @ B3 ) )
      = ( C3 @ A3 @ B3 ) ) ).

% internal_case_prod_conv
thf(fact_249_lfilter__empty__conv,axiom,
    ! [A: $tType,P: A > $o,Xs: coinductive_llist @ A] :
      ( ( ( coinductive_lfilter @ A @ P @ Xs )
        = ( coinductive_LNil @ A ) )
      = ( ! [X3: A] :
            ( ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs ) )
           => ~ ( P @ X3 ) ) ) ) ).

% lfilter_empty_conv
thf(fact_250_llast__LNil,axiom,
    ! [A: $tType] :
      ( ( coinductive_llast @ A @ ( coinductive_LNil @ A ) )
      = ( undefined @ A ) ) ).

% llast_LNil
thf(fact_251_Coinductive__List_Ofinite__lprefix__nitpick__simps_I3_J,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Y4: A,Ys: coinductive_llist @ A] :
      ( ( coindu328551480prefix @ A @ Xs @ ( coinductive_LCons @ A @ Y4 @ Ys ) )
      = ( ( Xs
          = ( coinductive_LNil @ A ) )
        | ? [Xs4: coinductive_llist @ A] :
            ( ( Xs
              = ( coinductive_LCons @ A @ Y4 @ Xs4 ) )
            & ( coindu328551480prefix @ A @ Xs4 @ Ys ) ) ) ) ).

% Coinductive_List.finite_lprefix_nitpick_simps(3)
thf(fact_252_prod_Osplit__sel__asm,axiom,
    ! [C: $tType,B: $tType,A: $tType,P: C > $o,F: A > B > C,Prod: product_prod @ A @ B] :
      ( ( P @ ( product_case_prod @ A @ B @ C @ F @ Prod ) )
      = ( ~ ( ( Prod
              = ( product_Pair @ A @ B @ ( product_fst @ A @ B @ Prod ) @ ( product_snd @ A @ B @ Prod ) ) )
            & ~ ( P @ ( F @ ( product_fst @ A @ B @ Prod ) @ ( product_snd @ A @ B @ Prod ) ) ) ) ) ) ).

% prod.split_sel_asm

%----Helper facts (3)
thf(help_If_3_1_T,axiom,
    ! [P: $o] :
      ( ( P = $true )
      | ( P = $false ) ) ).

thf(help_If_2_1_T,axiom,
    ! [A: $tType,X: A,Y4: A] :
      ( ( if @ A @ $false @ X @ Y4 )
      = Y4 ) ).

thf(help_If_1_1_T,axiom,
    ! [A: $tType,X: A,Y4: A] :
      ( ( if @ A @ $true @ X @ Y4 )
      = X ) ).

%----Conjectures (3)
thf(conj_0,hypothesis,
    ( product_case_prod @ ( coinductive_llist @ a ) @ c @ ( ( product_prod @ ( coinductive_llist @ b ) @ d ) > $o )
    @ ^ [Xs3: coinductive_llist @ a,B2: c] :
        ( product_case_prod @ ( coinductive_llist @ b ) @ d @ $o
        @ ^ [Ys3: coinductive_llist @ b,B6: d] :
            ( ( coindu1486289336t_all2 @ a @ b @ pa @ Xs3 @ Ys3 )
            & ( ( coinductive_lfinite @ a @ Xs3 )
             => ( qa @ B2 @ B6 ) ) ) )
    @ xsa
    @ ysa ) ).

thf(conj_1,hypothesis,
    ( ( coinductive_lfinite @ a @ ( product_fst @ ( coinductive_llist @ a ) @ c @ xsa ) )
   => ( ( coinductive_lfinite @ b @ ( product_fst @ ( coinductive_llist @ b ) @ d @ ysa ) )
     => ( ( qa
          @ ( product_case_prod @ ( coinductive_llist @ a ) @ c @ c
            @ ^ [Xs3: coinductive_llist @ a,B2: c] : ( if @ c @ ( coinductive_lfinite @ a @ Xs3 ) @ B2 @ ( undefined @ c ) )
            @ xsa )
          @ ( product_case_prod @ ( coinductive_llist @ b ) @ d @ d
            @ ^ [Xs3: coinductive_llist @ b,B2: d] : ( if @ d @ ( coinductive_lfinite @ b @ Xs3 ) @ B2 @ ( undefined @ d ) )
            @ ysa ) )
       => ( product_case_prod @ ( coinductive_llist @ a ) @ e @ ( ( product_prod @ ( coinductive_llist @ b ) @ f ) > $o )
          @ ^ [Xs3: coinductive_llist @ a,B2: e] :
              ( product_case_prod @ ( coinductive_llist @ b ) @ f @ $o
              @ ^ [Ys3: coinductive_llist @ b,B6: f] :
                  ( ( coindu1486289336t_all2 @ a @ b @ pa @ Xs3 @ Ys3 )
                  & ( ( coinductive_lfinite @ a @ Xs3 )
                   => ( ra @ B2 @ B6 ) ) ) )
          @ ( xs_a
            @ ( product_case_prod @ ( coinductive_llist @ a ) @ c @ c
              @ ^ [Xs3: coinductive_llist @ a,B2: c] : ( if @ c @ ( coinductive_lfinite @ a @ Xs3 ) @ B2 @ ( undefined @ c ) )
              @ xsa ) )
          @ ( ys_a
            @ ( product_case_prod @ ( coinductive_llist @ b ) @ d @ d
              @ ^ [Xs3: coinductive_llist @ b,B2: d] : ( if @ d @ ( coinductive_lfinite @ b @ Xs3 ) @ B2 @ ( undefined @ d ) )
              @ ysa ) ) ) ) ) ) ).

thf(conj_2,conjecture,
    ( product_case_prod @ ( coinductive_llist @ a ) @ e @ ( ( product_prod @ ( coinductive_llist @ b ) @ f ) > $o )
    @ ^ [Xs3: coinductive_llist @ a,B2: e] :
        ( product_case_prod @ ( coinductive_llist @ b ) @ f @ $o
        @ ^ [Ys3: coinductive_llist @ b,B6: f] :
            ( ( coindu1486289336t_all2 @ a @ b @ pa @ Xs3 @ Ys3 )
            & ( ( coinductive_lfinite @ a @ Xs3 )
             => ( ra @ B2 @ B6 ) ) ) )
    @ ( product_case_prod @ ( coinductive_llist @ a ) @ c @ ( ( c > ( product_prod @ ( coinductive_llist @ a ) @ e ) ) > ( product_prod @ ( coinductive_llist @ a ) @ e ) )
      @ ^ [Xs3: coinductive_llist @ a,B2: c,F2: c > ( product_prod @ ( coinductive_llist @ a ) @ e )] : ( product_apfst @ ( coinductive_llist @ a ) @ ( coinductive_llist @ a ) @ e @ ( coinductive_lappend @ a @ Xs3 ) @ ( F2 @ B2 ) )
      @ xsa
      @ xs_a )
    @ ( product_case_prod @ ( coinductive_llist @ b ) @ d @ ( ( d > ( product_prod @ ( coinductive_llist @ b ) @ f ) ) > ( product_prod @ ( coinductive_llist @ b ) @ f ) )
      @ ^ [Xs3: coinductive_llist @ b,B2: d,F2: d > ( product_prod @ ( coinductive_llist @ b ) @ f )] : ( product_apfst @ ( coinductive_llist @ b ) @ ( coinductive_llist @ b ) @ f @ ( coinductive_lappend @ b @ Xs3 ) @ ( F2 @ B2 ) )
      @ ysa
      @ ys_a ) ) ).

%------------------------------------------------------------------------------